我正在尝试 GAE 的几个功能。
我已经建立了一个Dynamic后端,但我在让这个东西工作时遇到了几个问题没有任务队列
后端代码:
class StartHandler(webapp2.RequestHandler):
def get(self):
#... do stuff...
if __name__ == '__main__':
_handlers = [(r'/_ah/start', StartHandler)]
run_wsgi_app(webapp2.WSGIApplication(_handlers))
后端是动态的。因此,每当它接到电话时,它都会做一些事情,然后停止。
当我在处理程序中使用时,一切工作正常:
url = backends.get_url('worker') + '/_ah/start'
urlfetch.fetch(url)
但我希望这个电话是async由于后端可能需要长达 10 分钟才能完成其工作。
所以我把上面的代码改成了:
url = backends.get_url('worker') + '/_ah/start'
rpc = urlfetch.create_rpc()
urlfetch.make_fetch_call(rpc, url)
但随后后端无法启动。我对完成请求或从中获取任何数据不感兴趣。
我错过了什么 - 实施错误?
谢谢你们
使用 RPC 进行异步调用而不调用 rpc 对象上的 get_result() 将不会保证调用 urlfetch。一旦您的代码退出,未完成的待处理异步调用将被中止。
使处理程序异步的唯一方法是将代码放入推送队列中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)