【发布时间】:2020-02-04 10:45:54
【问题描述】:
我应该在 3 秒内回复。
我的处理程序与第 3 方服务器对话,它可以在 3 秒内回复或无法回复。
我想到了下面的代码——
class MainReply(webapp2.RequestHandler):
def get(self):
# do something
# start task to talk with 3rd server
for i in range(300): # wait 3 seconds
# check task status
# if finished, then break
time.sleep(0.01)
# if not finished, inform user
这是正确的方法吗?还是有更好的解决方案?
更新。我正在开发语音助手机器人(类似于谷歌助手),机器人必须在 3 秒内回复。并且机器人不能自己发起答案,即一旦请求完成,我就不能给出另一个答案。由于这是语音助手,我无法提供链接。我在想下面的方法——如果我能在 3 秒内给出一个正常的答案,那就给它。如果没有 - 请用户用“状态”等简单的词再次询问。
【问题讨论】:
-
就编程基础而言,我认为这永远不会成为方法。您应该搜索事件订阅和观察者模式,如果语言默认不提供,请检查可用options。
-
@MikeMajara,谢谢,但我认为它不适用于我的情况。假设我订阅了任务完成事件。但它可能发生在 3 秒之前或之后。它将如何提供帮助?我可以在 3 秒内回答用户only。
-
只在 3 秒内回答用户是什么意思?如果答案在
-
Else - 返回另一个答案。
标签: python python-2.7 google-app-engine task