【问题标题】:How should I schedule my task in django我应该如何在 django 中安排我的任务
【发布时间】:2014-01-13 11:39:32
【问题描述】:

在我的 django 项目中,我需要每分钟或每 30 秒从大约 50 个远程服务器收集数据到本地数据库中。虽然它适用于远程服务器中的 crontab,但我想在项目中执行此操作。首先,我考虑 django-celery。但是它在异步处理中表现良好,并且收集数据任务不能延迟。因此我认为,它可能不合适。如果我这样做如何使用python的计时器以及我需要更多注意的地方。请原谅我对 python 和 django 的无知。我会很感激其他建议或想法。非常感谢

【问题讨论】:

  • 如果数据是按分钟收集的,我希望数据可以在任务开始后的一分钟内返回。当然,任务通常可以在一分钟内完成。我担心 celery 的异步处理延迟。
  • 如果我没听错的话,您是否有执行任务的时间限制?
  • 是的,我希望任务在预定时间立即执行

标签: python django scheduled-tasks


【解决方案1】:

基本上你可以使用 Celery 的周期性任务和 expire 选项,这可以确保你的任务不会被执行两次。

您也可以使用无限循环运行自己的脚本,就像运行计算一样。如果您的计算将运行超过一分钟,您可以使用 eventlet 或 gevent 生成您的任务。其他选项,您可以从此脚本创建 celery-tasks,并确保您的任务每 N 秒执行一次,如您所愿。

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 2021-01-16
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多