【问题标题】:Django setting up a scheduled task without CronDjango 在没有 Cron 的情况下设置计划任务
【发布时间】:2013-06-28 22:03:20
【问题描述】:

我知道有很多关于这个的问题,尤其是这个:Django - Set Up A Scheduled Job?

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

我的简单思考方式是某处存在无限循环,类似于这样(每 60 秒运行一次),

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

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

谢谢!

【问题讨论】:

    标签: django task schedule


    【解决方案1】:

    Django 不执行计划任务。如果您需要计划任务,则需要一个始终运行并可以在适当时间启动您的任务的守护程序。

    Django 仅在发出 http 请求时运行。如果一个月没有人发出http请求,django就不会运行一个月。如果这一秒有 45 个 http 请求,django 将在这一秒内运行 45 次(在没有缓存的情况下)。

    您可以在 django 框架中编写脚本(称为管理命令),这些脚本被一些外部服务(如 cron)调用。这是尽可能接近你想要的东西。如果是这种情况,那么您参考的问题/答案就是获取操作方法的地方。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-21
      • 2014-05-26
      • 2015-01-04
      • 2019-02-23
      • 2017-11-06
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      相关资源
      最近更新 更多