RT:小弟这边为了保证某 task 优先运行完成,采用了检查结果返回状态的法子:
while not result.ready():
比如下面的样例代码,任务没有 ready 就一直循环( PS:用 result.get 也会出现类似的情况):
from tasks import add
result = add.delay(4, 4) #不要直接 add(4, 4),这里需要用 celery 提供的接口 delay 进行调用
while not result.ready():
time.sleep(1)
print 'task done: {0}'.format(result.get())
结果小弟发现那个需要优先运行的任务,就一直处在 received 的状态,result.ready()的返回一直是 False。 此前以为 task 函数的原因,检查了并没有发现问题。
很急,在线求大神解答为啥会出现这种情况。 感谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.