使用celery的backend异步获取结果

Posted heimaguangzhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用celery的backend异步获取结果相关的知识,希望对你有一定的参考价值。

我们的项目在使用celery异步任务的时候,并没有告诉大家如何去查询我们异步任务的执行结果,这里小编简单跟大家聊一聊,提供一下思路

如果需要查看异步任务的调用结果,就需要使用到了backend这个参数了:当我们像指明broker一样指明了backend之后,当worker执行完任务,会返回task唯一id作为键,将结果作为值传递给backend,这个时候你可以拿着这个id去redis里面查找结果。

以下为案例:

# 配置
from celery import Celery
BROKER_URL = ‘redis://:password@localhost:6379/0‘
BACKEND_URL = ‘redis://:password@localhost:6379/1‘


# 创建一个Celery对象celery_app = Celery(‘celery_tasks‘)
# 加载配置
celery_app.config_from_object(‘celery_tasks.config‘)

调用任务函数
@celery.task
def add(x, y):
    result = x + y
    print result
    return result

调用函数执行异步任务
result = add.delay(a, b)


result为一个异步任务对象,根据对象获取id,到数据库查询对应的结果

跟德国技术咨询可关注:gzitcast

以上是关于使用celery的backend异步获取结果的主要内容,如果未能解决你的问题,请参考以下文章

压测:celey backend为rabbitmq pk redis

Celery 在远程任务上使用 Django Result Backend

Celery

Celery---一个懂得异步任务,延时任务,周期任务的芹菜

Celery - 一个懂得 异步任务 , 定时任务 , 周期任务 的芹菜

Celery - 一个懂得 异步任务 , 定时任务 , 周期任务 的芹菜