目前花费大量实例时间等待我发送给Facebook完成的HTTP POST,即使我实际上甚至没有查看这些POST的结果(我正在做他们做的用户已安排的页面帖子通过我的应用程序)。
即使在异步urlfetch中,the docs say:
如果请求处理程序退出时有任何URL提取请求处于挂起状态, 应用程序服务器等待所有剩余的请求 返回或到达他们的截止日期,然后再回复 用户。
有没有办法在不等结果的情况下进行POST?
在Asynchronous URLfetch when we don't care about the result? [Python]之前曾经问了一次,但这些答案很古老,现在可能会有一些直截了当的方式?
答案 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)
urlfetch
,参数极低deadline
怎么样?
https://developers.google.com/appengine/docs/python/urlfetch/fetchfunction?csw=1