我在名为 tasks.py 的 celery 模块中定义了以下内容,并导入了 requests 库:
@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: INFO/MainProcess] 任务 tasks.geturl[48182400-7d67-466b-ba5c-867747cb3974] 成功 0.402245998383s: 无
但是当我通过调用 geturl('http://www.google.com') 以同步方式运行它时,我得到了响应。我已通读文档,似乎无法弄清楚为什么这不起作用。它的主要用途是轮询 API,有人可以解释为什么这不起作用吗?
谢谢!