我可以将 Python 请求与 celery 一起使用吗?

2024-01-04

我在名为tasks.py 的celery 模块中定义了以下内容,并导入了请求库:

@celery.task
def geturl(url):
    res = requests.get(url)
    return res.content

每当我使用以下命令调用任务(从tasks.py或REPL)时:

res = geturl.delay('http://www.google.com')
print res.get()

以下是 celery 服务器上的日志条目:

[2012-12-19 18:49:58,400: INFO/MainProcess] 启动新的 HTTP 连接 (1): www.google.com [2012-12-19 18:49:58,594: INFO/MainProcess] 启动新的 HTTP 连接 (1): www.google.ca [2012-12-19 18:49:58,801:信息/MainProcess]任务tasks.geturl [48182400-7d67-466b-ba5c-867747cb3974]成功0.402245998383s:无

但是当我通过调用 geturl('http://www.google.com') 以同步方式运行它时,我得到了响应。我已通读文档,似乎无法弄清楚为什么这不起作用。它的主要用途是轮询 API,有人可以解释一下为什么这不起作用吗?

Thanks!


res.content只是一个str例如,您没有理由不能退货。您的问题可能出在其他地方,可能出在您的芹菜配置中。


许多配置参数都会影响结果的存储方式 http://docs.celeryproject.org/en/latest/configuration.html#task-execution-settings;看看他们。
您想要检查的第一个可能是CELERY_IGNORE_RESULT.

您还应该检查您的结果代理配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将 Python 请求与 celery 一起使用吗? 的相关文章

随机推荐