Kar*_*arl 5 python redis celery
我正在使用带有redis的芹菜.
当前的redis用作代理和结果后端.
BROKER_TRANSPORT = 'redis'
BROKER_URL = 'redis://domain:8888/0'
CELERY_RESULT_BACKEND = 'redis://domain:8888/0'
Run Code Online (Sandbox Code Playgroud)
我想澄清一些事情
结果后端正是它听起来的样子,它只是存储来自任务的结果.
假设你有以下任务实际返回一个值.
@task
def sum(x, y):
return x + y
Run Code Online (Sandbox Code Playgroud)
在某些时候,你称之为此任务.如果你没有结果后端,get()将抛出一个错误(或警告,我忘了哪个).如果你有一个结果后端(并假设它已正确配置),task.get()将轮询你的redis-backend以获得task_id相关的结果task,然后通过你指定的任何序列化程序将它返回给你.
from tasks import sum
task = sum.delay(3, 4)
task.get()
Run Code Online (Sandbox Code Playgroud)
您可以看到它只通过调用get()(并等待完成)您已发送给代理的任务来工作.您可以阅读有关使用官方文档中的芹菜结果的更多信息.
你原则上可以从redis-cli中调查你的redis数据库,但是我没有理由这样做.您可以通过转到其中一个实际任务详细信息视图并选中"基本任务选项"表下的"结果"字段来查看花中的结果.例如http://flower.myserver.com/task/
| 归档时间: |
|
| 查看次数: |
8908 次 |
| 最近记录: |