Celery定時任務細講

2022-01-12 11:20:09 字數 1609 閱讀 1570

任務所在目錄

├── celery_task # celery包 如果celery_task只是建了普通資料夾__init__可以沒有,如果是包一定要有

│ ├── __init__.py # 包檔案 看情況要不要存在

│ ├── celery.py # celery連線和配置相關檔案,且名字必須交celery.py,其實也不是必須的不然你指令可能要修改

│ └── tasks.py # 所有任務函式

celery.py

from celery import celery

#建立乙個celery物件

broker = 'redis:' #任務放在用redis://ip:埠/第幾個資料庫

backend = 'redis:' #任務結果放在

include = ['celery_task.tasks',] #任務所在目錄

from datetime import timedelta

from celery.schedules import crontab

#任務名稱自定義可隨意

方式一

方法二

引數名稱=引數值,

引數名稱=引數值

)方法三

匯入配置檔案

配置檔案

引數名稱=引數值

引數名稱=引數值

常用中國

#也可以直接設定

國際時間

#也可以直接設定

timedelta 物件

from datetime import timedelta

'schedule': timedelta(seconds=3), #每三秒 執行一次 其他想想就知道啦

#具體有啥引數我也不想列舉了你ctrl+左鍵進入timedelta原始碼自己看就知道啦

crontab 物件
#schedule配置舉例

from celery.schedules import crontab

# 每分鐘執行一次

crontab()

# 每天凌晨十二點執行

crontab(minute=0, hour=0)

# 每十五分鐘執行一次

crontab(minute='*/15')

# 每週日的每一分鐘執行一次

crontab(minute='*',hour='*', day_of_week='sun')

# 每週三,五的三點,七點和二十二點沒十分鐘執行一次

crontab(minute='*/10',hour='3,17,22', day_of_week='thu,fri')

Celery 定時任務

project celery task celery包 init py 包檔案 celery.py celery連線和配置相關檔案,且名字必須交celery.py tasks.py 任務體函式檔案 注意 任務體 檔案要與celery.py檔案在同乙個包下 beat也是乙個socket,啟動後會根據配...

Celery 定時任務

celery beat是乙個排程程式,它定期啟動任務,然後由集群中的可用工作程式節點執行任務。預設情況下,條目是從 beat schedule 設定中獲取的 但也可以使用自定義儲存,例如將條目儲存在sql資料庫中。必須確保一次只有乙個排程程式針對乙個排程任務執行,否則最終將導致重複的任務。使用集中式...

celery定時任務

預先在django中配置好celery,接下來著手配置下定時任務。時區修改為本地時區 在setttings.py 新增以下任意一行 celery timezone asia shanghai 如果使用了django celery beat持久化到資料庫,那麼需要手動執行更新命令 python man...