1. 程式人生 > >Celery-------周期任務

Celery-------周期任務

哪裏 cront fun 例子 方式 back 啟動 生產者 each


在項目目錄例子的基礎上進行修改一下celery文件

from celery import Celery
from celery.schedules import crontab

celery_task = Celery("task",
                     broker="redis://127.0.0.1:6379",
                     backend="redis://127.0.0.1:6379",
                     include=["Celery_task.task_1","Celery_task.task_2"])

#我要要對beat任務生產做一個配置,這個配置的意思就是每10秒執行一次Celery_task.task_1任務參數是(10,10)  PS: 這裏我們並沒真的用到參數 只是舉個例子
celery_task.conf.beat_schedule={ "each10s_task":{ "task":"Celery_task.task_1.func1", "schedule":10, # 每10秒鐘執行一次 "args":(10,10) }, "each1m_task": { "task": "Celery_task.task_1.func1", "schedule": crontab(minute=1), # 每一分鐘執行一次 "args": (10, 10) },
"each24hours_task": { "task": "Celery_task.task_1.func1", "schedule": crontab(hour=24), # 每24小時執行一次 "args": (10, 10) } } #以上配置完成之後,還有一點非常重要 # 不能直接創建Worker了,因為我們要執行周期任務,所以首先要先有一個任務的生產方 # celery beat -A Celery_task # celery worker -A Celery_task -l INFO -P eventlet

創建Worker的方式並沒有發行變化,但是這裏要註意的是,每間隔一定時間後需要生產出來任務給Worker去執行,這裏需要一個生產者beat

celery beat -A Celery_task #創建生產者 beat 你的 schedule 寫在哪裏,就要從哪裏啟動

Celery-------周期任務