【发布时间】:2023-03-20 23:40:01
【问题描述】:
像这个问题 (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 管理命令相比,这样做的优点/缺点是什么?
谢谢!
【问题讨论】:
-
这是完全相同的问题,你甚至链接到它。阅读另一个问题的第二个答案 - 它指的是芹菜。
-
谢谢。我读过那个答案,但不太明白 Celery 是什么或它做了我需要的。仍然不确定我是否真的理解,但我会试一试:)
-
客户端确实在推动我将脚本与 Django 捆绑在一起,而不是使用任何外部的东西,例如芹菜。我该怎么做,我可以这样做,有什么缺点?
标签: django