我和雷迪斯一起用芹菜。
当前Redis用作代理,并因此作为后端使用。
BROKER_TRANSPORT = 'redis'
BROKER_URL = 'redis://domain:8888/0'
CELERY_RESULT_BACKEND = 'redis://domain:8888/0'我想澄清几件事:
发布于 2016-05-04 00:16:49
结果后端就是它听起来的样子,它所做的只是存储来自任务的结果。
假设您有以下任务,它实际上返回一个值。
@task
def sum(x, y):
return x + y在某种程度上,你把这个任务叫做。如果您没有结果后端,get()将抛出一个错误(或警告,我忘记了哪个)。如果您有一个结果后端(并假定它配置正确),task.get()将轮询您的redis后端,以获得与task关联的task_id的结果,然后通过您指定的任何序列化程序将其返回给您。
from tasks import sum
task = sum.delay(3, 4)
task.get()您可以看到,只需在发送给代理的任务上调用get() (并等待完成)就可以工作。您可以阅读有关使用芹菜来自官方文件的更多信息。
原则上,您可以从redis-cli中轮询您的redis数据库,但我认为没有理由这样做。您可以通过进入实际任务详细视图之一并检查“基本任务选项”表下的“结果”字段来查看花中的结果。例如http://flower.myserver.com/task/
发布于 2021-09-17 07:50:24
这个问题已经回答了。因此,我想展示一下DB中芹菜商店的快照,以便给出一个想法。
在这里,我使用了芹菜的默认设置和MySQL数据库作为result_backend。
它创建了两个表:
1. celery_taskmeta

和
2. celery_tasksetmeta

https://stackoverflow.com/questions/37016274
复制相似问题