芹菜工作者:周期性当地背景任务

2024-04-23 19:52:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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

celery.beat似乎不太合适,因为它似乎只是简单地绑定到一个使用者(因此可以在任何服务器上运行)-这是我所追求的调度类型,但只是一个任务,它总是在运行此工作进程的每台服务器上本地运行(该任务执行一些与工作进程处理的主任务相关的清理和统计信息)。在

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


Tags: 功能服务器信息类型进程方式使用者调度
2条回答

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

由于我们已经使用心跳,该类允许对其start()方法进行简单修改(添加另一个self.timer.call_repeatedly()项),或附加的self.eventer.on_enabled.add()__init__项,它引用了一个新方法,该方法也使用self.timer.call_repeatedly()来执行周期性任务。在

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

相关问题 更多 >