您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

芹菜-安排在特定时间开始的定期任务

芹菜-安排在特定时间开始的定期任务

Celery似乎是解决日程安排问题的好方法:Celery的PeriodicTasks具有几秒钟的运行时间解析。

在这里使用的是合适的工具,但是crontab条目不是您想要的。您想使用python的datetime.timedelta对象;celery.schedules中的crontab调度程序只有几分钟的分辨率,但是使用timedelta来配置PeriodicTask间隔将提供严格的更多功能在这种情况下,每秒分辨率。

例如来自芹菜文档

>>> from celery.task import tasks, PeriodicTask
>>> from datetime import timedelta
>>> class EveryThirtySecondsTask(PeriodicTask):
...     run_every = timedelta(seconds=30)
...
...     def run(self, **kwargs):
...         logger = self.get_logger(**kwargs)
...         logger.info("Execute every 30 seconds")

http://ask.github.com/celery/reference/celery.task.base.html#celery.task.base.PeriodicTask

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

这里唯一的挑战是必须描述要执行此任务的频率,而不是要在什么时钟时间运行。但是,我建议您查看Advanced Python Schedulerhttp://packages.python.org/APScheduler/

看起来Advanced Python Scheduler可以使用其自己的调度功能轻松地用于按您选择的任何调度启动正常(即非周期性)的Celery任务。

其他 2022/1/1 18:52:05 有547人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶