在一个项目中用到了celery,我们用rabbitmq来作为broker,但是发现当rabbitmq挂掉时,celery却无法发送任务,设计到apply_async和delay的代码会一直处在卡住的状态。
博世壁挂热水器泄压方法
写一篇与IT无关的文章~
最近发现家里博世壁挂燃气热水器下方的台面上有积水的情况,这才注意到热水器的压力指示过高,指针指示已经超过了3到了红色的位置,估计是因为这个触发了自动漏水泄压了。打了博世维修的电话,怀疑是夏天温度过高,远程指导着泄了一次压,顺便把这个过程记录了下,以便于以后的使用吧。
ssh远程运行python脚本报UnicodeDecodeError错误
最近在服务器上写了个python脚本来跑一些任务,本地(macos 10.14)通过ssh来远程运行这个脚本:
1 | ssh knktc@cloud.knktc.com /home/knktc/test.py |
结果却出现了类似下面的错误:
1 | UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 1941: ordinal not in range(128) |
使用uwsgi实现异步任务
在开发closestack这个虚拟机管理项目的时候,本着精简的原则,我没有使用celery等异步的方案,部署倒是简单了,但是可以预见,如果同时使用系统的人员增加的话,可能出现等待时间超长的问题。因此需要使用过一个简单的方法来实现异步,以解决并发的问题。
docker服务无法启动的解决方案(layer does not exist)
近期一台服务器上的docker无法启动,查看日志发现报告的是:msg=”Error starting daemon: layer does not exist”
如何复制KVM虚拟机的快照
KVM虚拟机的快照(snapshot)功能可以保存虚拟机运行时的内存状态,恢复快照后虚拟机即可恢复到创建快照时的运行时状态,所有的软件运行状态依旧,类似于游戏中的SL(save/load)大法。我们可以使用快照功能实现很多业务,例如快速恢复沙箱的运行状态,而不用清理环境或是重启虚拟机等待服务一一启动。
但是KVM虚拟机的快照功能却不是很好利用,当需要大规模使用快照时就会发现似乎快照没那么好复制,复制出来的快照往往启动后也会失效,无法恢复,让批量化部署变得很困难。本文介绍了复制KVM虚拟机快照方法,用较低的成本将一个虚拟机的快照复制出来,方便批量部署。
uwsgi no python application found错误的解决(python3+centos7)
近期在努力把自己的项目从python2转到python3上,因为生产环境无法抛弃centos7,所以只好在centos7上安装了python3。装好了python3,将python命令软连接改成python3的,同时也将pip指向了python3版本的pip。一切都很顺利,但在用uwsgi启动一个django的web服务时才发现出了问题:服务是启动了,但是一访问接口就返回500,再一看uwsgi这边的日志,显示:no python application found 。
在KVM虚拟机中安装安卓X86模拟器
一般情况下,我们在虚拟机中安装安卓的ARM版模拟器,虽然兼容性好,但速度较慢,很影响用户体验,有的时候打开模拟器往往需要三分钟的等待,如果使用x86模拟器,并开启加速功能,将会达到提升用户体验的效果。
但是安装X86模拟器需要CPU开启虚拟化功能,而KVM虚拟机已经是虚拟机了,虚拟机中的CPU默认情况下不带有虚拟化功能,这就需要nested kvm功能了。
Django Rest Framework 动态获取字段
我写获取数据的API的时候,喜欢在URL中加入一个查询字段fields,用来过滤返回数据的字段,这样就可以做到我想返回哪些字段的数据就返回哪些字段的数据,减少网络传输的数据。但在使用Django Rest Framework的时候却发现框架默认并没有带有这样的功能。在网上进行搜索后在github上发现了一个名为“drf-dynamic-fields”的库,试用后发现问题完美解决了。
postman自动设置token(csrf及authorization token)
近期在开发一个Django的项目,由于开启了csrf防护,所以需要在请求的header中加入“X-CSRFToken”。使用postman进行请求的测试时,如果不加这个header,则会返回403错误。
Django项目的csrftoken一般在登录的时候会设置到cookie中,本文描述了如何使用postman自动获取cookie中的csrftoken,并将该值自动设置到后续请求的header中。