0%

最近在Django编写的一个系统中希望能加入对当前celery积压任务的展示,并且能提供功能来清理队列。我们使用了RabbitMQ作为了celery的broker,除了直接用kombu来编码实现需求外,还可以直接使用以下的方法来实现需要的功能,减少一些broker配置的代码。

阅读全文 »

最近使用Django admin在后台来添加删除一些数据,使用模型中的字段的choices来实现下拉框的功能,但是发现后期choices如果要新增或是删除就会要重新生成migrations文件,为了解决这个问题,只能设法让django的choices可以动态地生成了。

阅读全文 »

最近发现用Django写的某项目时不时会有报错发生,我们用的是postgresql+pgpool2的组合,日志显示报错信息如下:

1
2
3
4
5
psycopg2.OperationalError: unable to read data
DETAIL: child connection forced to terminate due to client_idle_limit:10 is reached
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.

从报错日志来看,是由于pgpool2的client_idle_limit参数设置得太短,设置成了10秒,自动将10秒不活动的客户端连接给关闭了,但Django这边并没有感知数据库连接已经断开,还在继续使用数据库连接,导致了这个报错。

阅读全文 »

写一篇与IT无关的文章~

最近发现家里博世壁挂燃气热水器下方的台面上有积水的情况,这才注意到热水器的压力指示过高,指针指示已经超过了3到了红色的位置,估计是因为这个触发了自动漏水泄压了。打了博世维修的电话,怀疑是夏天温度过高,远程指导着泄了一次压,顺便把这个过程记录了下,以便于以后的使用吧。

阅读全文 »

在开发closestack这个虚拟机管理项目的时候,本着精简的原则,我没有使用celery等异步的方案,部署倒是简单了,但是可以预见,如果同时使用系统的人员增加的话,可能出现等待时间超长的问题。因此需要使用过一个简单的方法来实现异步,以解决并发的问题。

阅读全文 »

KVM虚拟机的快照(snapshot)功能可以保存虚拟机运行时的内存状态,恢复快照后虚拟机即可恢复到创建快照时的运行时状态,所有的软件运行状态依旧,类似于游戏中的SL(save/load)大法。我们可以使用快照功能实现很多业务,例如快速恢复沙箱的运行状态,而不用清理环境或是重启虚拟机等待服务一一启动。

但是KVM虚拟机的快照功能却不是很好利用,当需要大规模使用快照时就会发现似乎快照没那么好复制,复制出来的快照往往启动后也会失效,无法恢复,让批量化部署变得很困难。本文介绍了复制KVM虚拟机快照方法,用较低的成本将一个虚拟机的快照复制出来,方便批量部署。

阅读全文 »

近期在努力把自己的项目从python2转到python3上,因为生产环境无法抛弃centos7,所以只好在centos7上安装了python3。装好了python3,将python命令软连接改成python3的,同时也将pip指向了python3版本的pip。一切都很顺利,但在用uwsgi启动一个django的web服务时才发现出了问题:服务是启动了,但是一访问接口就返回500,再一看uwsgi这边的日志,显示:no python application found 。

阅读全文 »