ubuntu系統下安裝指令:
安裝rabbitmq:
$ sudo apt-get install rabbitmq-server
安裝celery:
sudo easy_install celery
注意:這裡我開始採用官方文件的指令
$ pip install celery
不過發現用不了,執行後面的指令提示不能識別。
可以安裝rabbit-celery 或者 使用easy_install安裝celery
建立tasks.py檔案
from celery import celery
def add(x, y):
return x + y
使用worker啟動伺服器,如果不啟動,會得不到結果,例如官網上出現false的情況。
$ celery -a tasks worker --loglevel=info
使用以下指令可以顯示命令列表
$ celery worker --help
$ celery help
下面來做個測試:
啟動celery worker 伺服器,啟動之後,使用其他終端輸入指令,這個終端顯示結果。
$ celery -a tasks worker --loglevel=info
輸入python,進入python環境
>>> from tasks import add
>>> add.delay(4, 4)
取得結果:
這裡還得設定一下tasks.py,使用rabbitmq的後台
>>> result = add.delay(4, 4)
>>> result.ready()
true
>>> result.get(timeout=1)
8
1.多個設定一起執行
celery_task_serializer='json',
celery_accept_content=['json'], # ignore other content
celery_result_serializer='json',
celery_timezone='europe/oslo',
celery_enable_utc=true,
)2.呼叫外部檔案
celeryconfig.py
broker_url = 'amqp://'
celery_result_backend = 'amqp://'
celery_task_serializer = 'json'
celery_result_serializer = 'json'
celery_accept_content=['json']
celery_timezone = 'europe/oslo'
celery_enable_utc = true
可以通過一下**來測試是否出錯
$ python -m celeryconfig
設定優先權和速率
celeryconfig.py
:
celery_annotations =
}
celery_annotations =
}
也可以直接在外面設定:
$ celery -a tasks control rate_limit tasks.add 10/m
new rate limit set successfully
celery學習筆記
1.windows下 啟動redis命令 redis server redis.windows.conf 如果出現 5512 23 dec 16 53 14.121 creating server tcp listening socket 127.0.0.1 6379 bind no error 這...
Celery學習筆記(一)
在學習celery之前,我先簡單的去了解了一下什麼是生產者消費者模式。在實際的軟體開發過程中,經常會碰到如下場景 某個模組負責產生資料,這些資料由另乙個模組來負責處理 此處的模組是廣義的,可以是類 函式 執行緒 程序等 產生資料的模組,就形象地稱為生產者 而處理資料的模組,就稱為消費者。單單抽象出生...
celery 學習筆記(二)
從圖上我們可以看出celery包含幾個模組 主要包括非同步任務和定時任務,非同步任務通常在業務邏輯中被觸發併發送到任務佇列中,而定時任務是由celery beat程序週期性的將任務發往任務佇列。broker就是任務排程佇列,接收任務生產者傳送過來的訊息,將任務存入佇列,之所以需要中間人的原因是cel...