[英]How to check if celery result backend is working
我正在將 celery 與 redis 一起使用。
當前的 redis 用作代理和結果后端。
BROKER_TRANSPORT = 'redis'
BROKER_URL = 'redis://domain:8888/0'
CELERY_RESULT_BACKEND = 'redis://domain:8888/0'
我想清除幾件事
結果后端正是它聽起來的樣子,它只是存儲來自任務的結果。
假設你有以下任務實際返回一個值。
@task
def sum(x, y):
return x + y
在某些時候,你稱之為此任務。 如果你沒有結果后端,get()將拋出一個錯誤(或警告,我忘了哪個)。 如果你有一個結果后端(並假設它已正確配置), task.get()
將輪詢你的redis-backend以task_id
與task
相關的task_id
的結果,然后通過你指定的任何序列化程序將它返回給你。
from tasks import sum
task = sum.delay(3, 4)
task.get()
您可以通過在已發送給代理的任務上調用get()
(並等待完成)來查看它的工作原理。 您可以閱讀有關使用官方文檔中的芹菜結果的更多信息。
你原則上可以從redis-cli中調查你的redis數據庫,但是我沒有理由這樣做。 您可以通過轉到其中一個實際任務詳細信息視圖並選中“基本任務選項”表下的“結果”字段來查看花中的結果。 例如http://flower.myserver.com/task/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.