celery定時執行任務 的使用

2022-06-29 11:24:14 字數 2357 閱讀 4238

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

1pythondir目錄下啟動/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....