django-cron是如何工作的?
在一个django网站上,通常的做法是用cron定时运行一些自定义的管理命令。
不过,我发现了这个http://code.google.com/p/django-cron/。
它是怎么工作的,为什么不需要cron呢?是什么触发它去检查的?
如果它只是设置了一个地址,让http请求定期访问,那如果这个任务执行得很久,服务器不会超时吗?
2 个回答
6
它不断地启动一个 Timer
线程,这个线程的主要任务就是等待一段设定好的时间(这个时间就是你在 settings.py 里设置的轮询频率),然后再在 django-cron 队列上运行 execute
。
4
这要看Django是否是一个长期运行的程序,如果配置得当,它就是这样。Django会每5分钟(默认情况下)启动一个线程,检查是否有需要执行的任务,如果有的话,就会把这些任务运行起来。