【问题标题】:Django: set up a scheduled job within Django?Django:在 Django 中设置计划作业?
【发布时间】: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


【解决方案1】:

看看Celery Integration for Django。我将它用于我的项目并且效果很好。

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

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 2018-06-14
    • 2016-06-30
    • 2019-01-17
    • 1970-01-01
    • 2014-07-18
    • 2020-09-18
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多