如何检查芹菜结果后端是否工作正常

2024-05-20 09:38:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我用芹菜配redis。

当前的redis用作代理和结果后端。

BROKER_TRANSPORT = 'redis'
BROKER_URL = 'redis://domain:8888/0'
CELERY_RESULT_BACKEND = 'redis://domain:8888/0'

我想澄清一些事情

  1. 使用结果后端的好处是什么。我是说我用它能得到什么
  2. 我怎么能看到它的工作。我的意思是会有东西储存在redis里。仓库是永久性的。我怎么能质疑?储存量会随着时间增长吗
  3. 我能用芹菜花监控结果吗

Tags: redisbackendurl代理domain时间brokerresult
1条回答
网友
1楼 · 发布于 2024-05-20 09:38:38

结果后端就是它听起来的样子,它所做的只是存储任务的结果。

假设您有以下实际返回值的任务。

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

在某种程度上,你称之为任务。如果没有结果后端,get()将抛出一个错误(或者一个警告,我忘记是哪个)。如果您确实有一个结果后端(并且假设它配置正确),task.get()将从与task相关联的task_id轮询redis后端的结果,然后通过指定的序列化程序将其返回给您。

from tasks import sum

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

您可以看到,只要调用get()(并等待完成)您发送给代理的任务,它就可以工作。您可以阅读有关使用celery results from the official documentation的更多信息。

原则上,您可以从redis cli轮询redis数据库,但我认为没有理由这样做。通过转到一个实际任务详细信息视图并选中“基本任务选项”表下的“结果”字段,可以在flower中查看结果。e、 克http://flower.myserver.com/task/

相关问题 更多 >