2013-06-28 40 views
1

我知道有很多问题要问,特别是这个:Django - Set Up A Scheduled Job?Django设置没有Cron的计划任务

但我想了解的是,Django中的计划任务实际上是如何工作的?

我想它简单的方法是,有一个无限循环的地方,这样的事情(运行,每60秒),

import time 
interval=60 #60 seconds 
while True: 
    some_method() 
    time.sleep(interval) 

问:你在哪里把这个无限循环? Django应用程序的某些部分是否与应用程序的其余部分一起在后台运行?

谢谢!

回答

1

Django不执行计划任务。如果你想要计划任务,你需要一个随时运行的守护进程,并且可以在适当的时候启动你的任务。

Django只在发出http请求时才运行。如果没有人提出一个月的http请求,那么django不会运行一个月。如果第二秒有45个http请求,那么django会在第二秒运行45次(在没有缓存的情况下)。

您可以在django框架(称为管理命令)中编写脚本,这些脚本可以从某些外部服务(如cron)中调用。这就和你想要的一样接近。如果是这样的话,那么你提到的问题/答案就是获取方法的地方。

可能在unixy系统上,cron是最简单的外部服务。在最近的linux系统中,cron有一个目录/etc/cron.d,你可以在其中删除应用程序的cron配置文件,并且它不会干扰系统上的任何其他cron作业。不需要编辑现有文件。