0


61 Celery Beat 任务调度

    前面的任务调用都是手动触发的,本届将展示以下使用Celery的Beat进程自动调度任务。

    Celery Beat是Celery的调度器,其定期启动任务,然后由集群中的可用工作节点worker执行这些任务。默认情况下,Beat进程读取配置文件中CELERYBEAT_SCHE-DULE的设置,也可以使用自定义存储,比如将启动任务的规则存储在SQL数据库中。请确保每次只为任务调度运行一个调度程序,否则任务将被重复执行。使用集群的方式意味着调度不需要同步,服务可以在不使用锁的情况下执行。

    先明确一个概念---时区。间隔性任务调度默认使用UTC时区,也可以通过时区设置来改变时区。例如:

CELERY_TIMEZONE="Asia/Shanghai" #通过配置文件设置

app.conf.timezone='Asia/Shanghai' #直接在Celery app的源代码中设置

    时区的设置必须加入Celery的App中,默认的调度器(将调度计划存储在celerybeat-schedule文件中)将自动检测时区是否改变,如果时区改变,则自动重置调度计划。其他调度器可能不会自动重置,比如Django数据库调度器就需要手动重置调度计划。

    【示例  1】Celery调度实例。

    修改myCeleryProj/settings.py

    接下来启用CeleryBeat进程处理调度任务。

celery -A myCeleryproj.app beat

    最后可以在worker界面看到定时或间隔任务的处理情况。

本文转载自: https://blog.csdn.net/sj349781478/article/details/121062302
版权归原作者 Mr. Sun_ 所有, 如有侵权,请联系我们删除。

“61 Celery Beat 任务调度”的评论:

还没有评论