【问题标题】:Celery worker: periodic local background taskCelery worker:周期性本地后台任务
【发布时间】:2015-07-14 05:57:19
【问题描述】:

在使用单个工作人员时,是否有任何 Celery 功能或首选方式在本地执行定期后台任务?有点像后台线程,但由 Celery 调度和处理?

celery.beat 似乎不合适,因为它似乎只是与消费者相关联(因此可以在任何服务器上运行) - 这是我所追求的调度类型,但只是一个始终在每个本地运行的任务运行此工作器的服务器(该任务执行与工作器处理的主要任务相关的一些清理和统计信息)。

我可能会以错误的方式解决这个问题,但我仅限于在 celery worker 守护进程中实现它。

【问题讨论】:

    标签: python scheduled-tasks celery background-process


    【解决方案1】:

    您可以在 cron 上使用 a custom remote control commandthe broadcast function 来运行清理或其他任何可能需要的操作。

    【讨论】:

    • 嗯,是的,我可以看到工作流程可能正在工作,尽管感觉它来自错误的一端(宁愿 Celery 启动)。我们过去也遇到过广播的可靠性问题。
    【解决方案2】:

    我想到的一种可能的方法是修补celery.worker.heartbeat Heart() 类,虽然并不理想。

    由于我们已经使用了心跳,该类允许对其start() 方法进行简单修改(添加另一个self.timer.call_repeatedly() 条目),或者一个额外的self.eventer.on_enabled.add() __init__ 条目引用一个同样使用@ 的新方法987654326@ 执行周期性任务。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      • 2019-02-16
      相关资源
      最近更新 更多