簡體   English   中英

如何檢查 celery 結果后端是否正常工作

[英]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'

我想清除幾件事

  1. 使用結果后端有什么好處。 我的意思是使用它我會得到什么
  2. 我怎么能看到它的工作。 我的意思是將某些東西存儲在 redis 中。 該存儲是永久的。 我該如何查詢? 該存儲是否會隨着時間的推移而增長等
  3. 我可以用芹菜花監控結果后端的東西嗎

結果后端正是它聽起來的樣子,它只是存儲來自任務的結果。

假設你有以下任務實際返回一個值。

@task
def sum(x, y):
    return x + y

在某些時候,你稱之為此任務。 如果你沒有結果后端,get()將拋出一個錯誤(或警告,我忘了哪個)。 如果你有一個結果后端(並假設它已正確配置), task.get()將輪詢你的redis-backend以task_idtask相關的task_id的結果,然后通過你指定的任何序列化程序將它返回給你。

from tasks import sum

task = sum.delay(3, 4)
task.get()

您可以通過在已發送給代理的任務上調用get() (並等待完成)來查看它的工作原理。 您可以閱讀有關使用官方文檔中的芹菜結果的更多信息。

你原則上可以從redis-cli中調查你的redis數據庫,但是我沒有理由這樣做。 您可以通過轉到其中一個實際任務詳細信息視圖並選中“基本任務選項”表下的“結果”字段來查看花中的結果。 例如http://flower.myserver.com/task/

問題已經回答了。 所以,我想展示 celery 在 DB 中存儲的內容的快照,只是為了提供一個想法。

在這里,我將 celery 的默認設置與 MySQL 數據庫一起用作result_backend

它創建了兩個表:

1. celery_taskmeta

celery_taskmeta

2. celery_taskset_meta

celery_taskset_meta

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM