二 Celery基本命令和配置

2021-09-12 13:31:46 字數 1603 閱讀 2399

from celery import celery

def add(x, y):

return x+y

2、執行程式:celery -a tasks worker --loglevel=info

3、檢視命令列引數列表:celery worker --help

celery help

4、用delay()方法呼叫任務:

from tasks import add

add.delay(1,2)

5、將redis同時作為結果後端(傳送狀態訊息)和訊息中間人:

6、使用配置模組,可以通過result_backend設定:

result_backend=「redis://:password@hostname:port/db_number」

7、配置好結果後端,再次呼叫任務,呼叫任務後返回asyncresult例項。

result = add.delay(1, 2)

result.ready() #檢視任務是否完成處理

result.get(timeout=1) #你可以等待任務完成,但這很少使用,因為它把非同步呼叫變成了同步呼叫

8、倘若任務丟擲了乙個異常, get() 會重新丟擲異常, 但你可以指定 propagate 引數來覆蓋這一行為:

result.get(propagate=false)

9、任務丟擲異常時,獲取原始回溯資訊:result.traceback

11、用update一次性設定多個選項:

task_serializer = 'json',

accept_content = ['json'],

result_serializer = 'json',

timezone = 'europe/oslo',

enable_utc = true,

)celeryconfig.py:

broker_url = 'redis://'

result_backend = 'redis://'

task_serializer = 'json'

result_serializer = 'json'

accept_content = ['json']

timezone = 'europe/oslo'

enable_utc = true

13、驗證配置檔案是否正確:python -m celeryconfig

14、將「髒活」路由到專用佇列:task_routes =

15、對任務進行速率限制:task_annotations = } #每分10個

16、在職程上設定:celery control rate_limit tasks.add 10/m

17、結果後端未奏效或處於pending(待處理)狀態的可能原因:

- 啟用了ignore_result選項,強制職程跳過狀態更新。

- 啟用了task_ignore_result設定

- 確保沒有仍在執行的舊職程:–pidfile 引數可以設定為乙個絕對路徑來避免該狀況。

- 確保客戶端配置了正確的結果後端

>>> result = task.delay(…)

>>> print(result.backend)

二 Celery基本配置

1 安裝celery的redis依賴 pip install u celery redis 使用unix套接字連線 redis socket path to redis.sock virtual host引數新增到url redis socker path to redis.sock?virtual...

基本命令(二)

命令解釋 manfinger 可以讓使用者查詢一些其他使用者的資料 mkdir 建立目錄 執行最近一次的命令 history 戶用過的命令 kill 可以殺死某個正在進行或者已經是dest狀態的程序 whoami 確認自己身份 whereis 查詢命令所在目錄以及幫助文件所在目錄 which 查詢該...

二 基本命令

數字表示方法 檔案的歸屬 常見檔案型別 目錄 win資料夾 連線 win快捷方式 檔案詳細資訊 第二部分 擁有者 所屬組 第三部分 資料夾中的檔案數 檔案大小 建立日期 檔名 設定檔案對不同使用者的許可權 root 檔案拷貝 改變檔案擁有者 改變檔案所屬組 追加檔案內容 編輯檔案內容vi vim 檢...