首页 文章

Django:在Django中设置一个预定的工作?

提问于
浏览
1

像这个问题(Django - set up a scheduled job)我想在Django中运行一个常规任务 .

如果可能的话,我也非常想在Django中捆绑它,而不是需要一个cron工作 . 理想情况下,我想为客户端处理一个Django应用程序,他们可以在服务器上进行即插即用和移动,而无需每次都编辑crontab .

所以,我想要一些建议 . 我可以用Django捆绑类似下面的内容,并以某种方式挂钩到Django的启动过程吗? (伪代码)

Function secondsUntilNextRun() {
     $a = getTimeValue(“Next Friday at 9am”)
     $b = getCurrentTimeValue()
     Return $a - $b
} 
OnStartup {
     $timeToSleep = secondsUntilNextRun()
     Start Background Thread
}  
Background Thread {
     Sleep($timeToSleep)
     DoEmailReminders()
     $timeToSleep = secondsUntilNextRun()
}

与使用cron Django管理命令相比,这样做的优点/缺点是什么?

谢谢!

1 回答

  • 2

    看看Celery Integration for Django . 我将它用于我的项目并且它的工作非常好 .

    如果将任务直接集成到Django代码中,它们将在与Web应用程序相同的上下文中运行 . 这可能不是你想要的 .

相关问题