我在一个名为tasks.py的芹菜模块中定义了以下内容,其中导入了请求库:
@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()
以下是芹菜服务器上的日志条目:
[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:INFO / MainProcess]任务tasks.geturl [48182400-7d67-466b-ba5c-867747cb3974]成功于0.402245998383s:无
但是当我通过调用geturl(' http://www.google.com')以同步方式运行它时,我得到了回复。我已经阅读了文档,似乎无法弄清楚为什么这不起作用。这主要用于调查API,有人可以解释为什么这不起作用?
谢谢!
答案 0 :(得分:1)
res.content
只是一个str
个实例,没有理由你无法返回它。您的问题可能在其他地方,可能是您的芹菜配置。
Many configuration parameters play a role in how the results will be stored;看看他们。
您要检查的第一个可能是CELERY_IGNORE_RESULT
。
您还应该检查结果代理配置。