app引擎上的HTTP POST,无需等待结果

时间:2014-07-07 10:22:49

标签: google-app-engine

目前花费大量实例时间等待我发送给Facebook完成的HTTP POST,即使我实际上甚至没有查看这些POST的结果(我正在做他们做的用户已安排的页面帖子通过我的应用程序)。

即使在异步urlfetch中,the docs say

  

如果请求处理程序退出时有任何URL提取请求处于挂起状态,   应用程序服务器等待所有剩余的请求   返回或到达他们的截止日期,然后再回复   用户。

有没有办法在不等结果的情况下进行POST?

Asynchronous URLfetch when we don't care about the result? [Python]之前曾经问了一次,但这些答案很古老,现在可能会有一些直截了当的方式?

2 个答案:

答案 0 :(得分:0)

我实施了一个任务队列。这允许一旦将项目插入队列就完成请求,并且用户不必等到该过程完成。编写请求处理程序并记住使用queue.yaml文件配置队列

请求处理程序

import webapp2
from google.appengine.api import taskqueue

class Request_Handler(webapp2.RequestHandler):
    def post(self):
        queue = taskqueue.Queue('queue-name')
        task = taskqueue.Task(url='/queue/url', params={'key': value})
        queue.add(task)
        self.response.out.write('success')

<强> queue.yaml中

queue:
- name: queue-name
  rate: 5/s
  bucket_size: 1
  max_concurrent_requests: 1

答案 1 :(得分:0)