python-3.x - 芹菜链:是否需要等待才能得到结果?
问题描述
所以,我在 Python 3 中有一个 celery worker 运行的任务链。目前,我使用以下代码来获取并打印链的最终结果:
while not result.ready():
pass
print(result.get())
我已经运行了有和没有while-loop的代码,而且似乎while-loop是多余的。
我的问题是:“有必要有那个while-loop吗?”
解决方案
如果通过冗余,您的意思是代码可以在没有 while 循环的情况下正常工作,那么我敢说循环不是必需的。但是,如果您因为尝试打印尚不存在的内容而在没有循环的情况下抛出错误,那么您应该保留它。但是,这可能是一个问题,因为空的 while 循环意味着您只是在以计算机可以物理处理它的速度检查相同的变量,这往往会占用您的 CPU。我推荐如下内容:
import time
t = 1 #The number of seconds you want to wait between checking if the result is ready
while not result.ready():
time.sleep(t)
print(result.get())
您可以设置t
任何有意义的值。如果您正在运行的任务需要几个小时,也许将其设置为 60,您将在一分钟内得到结果。如果您希望结果更快,您可以使间隔更小。这将防止程序拖累计算机的其余部分。但是,如果你不介意你的粉丝在吹,你绝对需要知道结果准备好的那一刻,忽略以上所有内容,让你的代码保持原样:)
推荐阅读
- javascript - 无法从 rc-time-picker 检索 id 属性
- asp.net - 在 IIS 10 中显示 .Net CLR 而不是 .Net Framework
- c# - 如何处理数据合约序列化和应用程序混淆
- java - 是否可以动态更改 Switch 小部件的 ON 颜色?
- c# - 我在 C# 中有一个 for 循环我只想运行一次
- android - 带有新 sha1 的 Android Firebase 推送通知
- css - @font-face 图标未在 IE 11 中显示,所有其他浏览器都支持。使用 base64 网址
- c - 在结构中重新分配内存后出现奇怪的文本
- regex - 如何选择包括第三个斜杠(RegExp)在内的所有内容?
- jquery - POST 方法不断收到“404 Not found”错误