我正在使用 python 开发一个 GAE 应用程序,我希望它同时服务请求。为此,我将threadsafe设置为true。我在请求处理程序中定义了两种方法:
POST - 将拉取任务排入队列以异步执行,稍后将自己将拉取任务排入队列作为响应:
def post(self):
message = self.request.body
taskqueue.add(url='/process', params={'message': message}) #this task will enqueue a pull task as a response
GET - 轮询拉取任务队列以获取响应,直到有可用的响应(我知道我应该找到一种方法来改进该循环,但我只是在尝试):
def get(self):
(...)
tasks = queue.lease_tasks_by_tag(1, 100, tag)
while tasks.__len__() == 0:
time.sleep(1)
tasks = queue.lease_tasks_by_tag(1, 100, tag)
客户端应用程序调用 POST,然后调用 GET。我在 POST 方法排队的任务上放置了一个断点,但是当请求处理程序卡在循环中时,它永远不会被调用。我认为应用程序应该有多个线程为请求提供服务,那么它为什么不同时执行推送请求处理程序呢?我很感激这方面的任何帮助。