1 參照部落格
1 建立celery_pro包 # 可在任意檔案下
2 在 celery_pro 下建立 celery.py 檔案
# -*- coding:utf8 -*-from __future__ import absolute_import, unicode_literals
#1. absolute_import 可以使匯入的celery是python絕對路基的celery模組,不是當前我們建立的celery.py
#2. unicode_literals 模組可能是python2和3相容的,不知道
from celery import celery
# from .celery import celery #這樣才是匯入當前目錄下的celery
broker='redis://localhost',
backend='redis://localhost',
include=['celery_pro.tasks',
])#celery-pro是存放celery檔案的資料夾名字
#例項化時可以新增下面這個屬性
result_expires=3600, #執行結果放到redis裡,乙個小時沒人取就丟棄
)import time
# 配置定時任務:每5秒鐘執行 呼叫一次celery_pro下tasks.py檔案中的add函式
'add-every-5-seconds': ,
}if __name__ == '__macelery -a celery_pro beat -l infoin__':
3 建立 tasks.py 檔案
# -*- coding:utf8 -*-from __future__ import absolute_import, unicode_literals
#寫乙個add函式
def add(x, y):
print('執行函式')
return x + y
1、啟動乙個worker:在celery_pro外層目錄下執行
celery -a celery_pro worker -l info
2、啟動任務排程器 celery beat
celery -a celery_pro beat -l info
3、執行效果
看到celery執行日誌中每5秒回返回一次 add函式執行結果
3、啟動celery的worker:每台機器可以啟動8個worker
1、在pythondir目錄下啟動/pythondir/celery_pro/目錄下的worker
celery -a celery_pro.celery worker -i info
celery -a celery_pro worker -l info
2、後台啟動worker:/pythondir/celery_pro/目錄下執行
celery multi start w1 -a celery_pro -l info #
在後台啟動
w1這個
worker
celery multi start w1 w2 -a celery_pro -l info #
一次性啟動
w1,w2
兩個worker
celery -a celery_pro status #
檢視當前有哪些
worker
在執行celery multi stop w1 w2 -a celery_pro #
停止w1,w2
兩個worker
celery multi restart w1 w2 -a celery_pro #
重啟w1,w2
兩個worker
celery 執行celery定時任務
場景 在虛擬機器上執行 python django celery redis 的定時任務 可能遇到的問題 如果在執行過程中,定時任務突然退出,並報以下錯誤,錯誤顯示,沒有許可權訪問一些目錄檔案 解決方案 1 關閉當前redis服務 在step 3中有描述如何關閉 2 以root使用者執行啟動redi...
定時執行任務
在windows上,使用configuration task scheduler 任務計畫程式 task scheduler library 任務計畫程式庫 create task.或者 control panel scheduled tasks add a scheduled task.在linu...
定時執行任務
spring中可以通過配置方便的實現週期性定時任務管理,這需要用到以下幾個類 org.springframework.schedu ling.quartz.methodinvokingjobdetailfactorybean 配置需要排程的bean的某個方法 org.springframework....