RabbitMQ 在 Python 中的安装配置和使用
RabbitMQ 是一个免费开源的消息队列应用,应用非常广泛,本文主要介绍 RabbitMQ 的安装使用和 Python+pika 的简单调用.
RabbitMQ 是一个免费开源的消息队列应用,应用非常广泛,本文主要介绍 RabbitMQ 的安装使用和 Python+pika 的简单调用.
依赖注入 (dependency injection) 是实现控制反转的一种技术,顾名思义,就是将依赖 (被调用者) 注入给依赖对象 (调用者)。
用户类 User
有一个注册方法,我们需要实现一个功能,在注册成功后,给用户发送一封邮件通知。我们先写一个发送邮件的类:
1 | class EmailClass |
然后在用户注册方法中实例化一个邮件类:
1 | class User |
这时候又来一个需求,需要在注册成功之后给用户发送短信,于是又要在注册方法里面实例化一个发送短信的类。或者这个时候我们要改一下邮件内容,要把注册密码发给用户,于是我们要给 EmailClass::sendEmail
加一个 password 参数。经过长期迭代和添油加醋,我们需要频繁的去修改核心注册逻辑,最终的注册方法将变得极为臃肿且难以维护。
今天在使用 Symfony Cache 时遇到一个报错:Symfony\Component\Cache\Exception\InvalidArgumentException: Cache key "xxx:xxx" contains reserved characters "{}()/\@:"
,经过排查发现我的缓存 key 带有冒号。
项目开发时发现几个小数组成的数组进行求和的结果不对,第一反应就觉得是精度问题,于是做了实验:
1 | $array = [0.4, 0.4, 0.2, 0.4, 0.4, 0.2]; |
猜猜以上代码运行的结果是什么?
新安装的最新版本 MySQL,可以在服务器终端登录 root 账户,但是外部始终登录不上,报连接拒绝错误
1 | mysqli::real_connect(): (hy000/1698): access denied for user 'root'@'localhost' |
写博客时遇到了上传图片的需求,于是找到了 markdown-image
这个 VSCode 插件,可以直接把剪切板图片存入本地指定目录 (也可以根据自己需求上传到其他云服务器,详情可见插件文档说明),并自动生成 md 引用图片的语法。
Let's Encrypt
是一个数字证书认证机构,为网站提供免费的 TLS 证书。