使用uwsgi实现异步任务

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

如何复制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中。

新成立的业余兴趣小组

我是个后端,这么多年也没好好学过前端,又想有空了鼓捣点带前端的东西,思来想去,搞个业余兴趣小组吧。于是在github上搞了一个organization,叫PYAJS,是PYthon And JavaScript的简称,意为这个小组前端后端都会做。先拉了几个同事,有前端的,也有后端的,作为这个业余兴趣小组的初始成员吧。

organization的地址为:https://github.com/pyajs

我们还弄了一个口号: Beyond Python And JavaScript,意思就是,大家随便发挥,不限于这两们我们最熟悉的语言~

欢迎大家的加入!