Django 和 Cherrypy 的自动载入机制实现与对比

发布时间:2012-05-19 16:41:41, 关注:+4508, 赞美:+2, 不爽:+4

本文标签: cherrypy

原始出处: CL.TANG

程序视觉效果:

  django有一个测试服务器,当然官网明确提出不要做为生成环境,因为他实在是不具备并发的效果,cherrypy也有一个服务器,不过可以用作生成环境。当我们在使用这2种框架进行开发的时候,可以一直启动他们这个服务,然后对我们的代码进行修改,而同时服务器也自动载入了我们的新代码,执行新代码的流程,不用重启服务,搞java的同学一定有体会的,重启tomcat多少次什么的。

进程与线程的关系:一个进程下最少得有一个线程,即最少需要有一个主线程,没有任何线程的正常运行进程是不存在的。

所以,根据此理论,就可以做出实现,一个进程,一个主线程,一个次线程,主线程实时监听,检测当前文档,代码是否变化,一旦变化,重启次线程,达到代码的自动载入功能,重启功能。

这样的一个功能,或者说设计方式,对我们自己开发代码有什么好处呢?

个人情况:个人开发了一个配置型爬虫,一个主进程,有多少个网站爬虫有多少个子进程,每个子进程在根据配置可以有多个子线程。那么其实在这里我就可以使用这样的方式了。因为爬虫主进程启动后,而当我想加网站,或者修改其中网站的配置的时候,问题就来了,我的程序是要停呢还是要停呢,按照当前这样的情况,问题有:增加工作量,时不时要使用什么ps , kill -9之类的,烦心,如果将自动载入这样的设计机制放进去,就不用在说因为我该了某个配置文件,增加了配置文件,而要把当前爬虫停掉。

当然,另外一种实现机制是写个脚本杀进程,形如ps -ef spider | grep -v grep | awk '{print $2}'  之类,不想这么做,这么做哪怕是没修改的脚本也需要重启动,实在是累。还是把这种重载做成一个公共模块比较好。

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠