2012-06-18 69 views
4

有没有办法动态确定当前正在执行的任务是标准http请求还是TaskQueue?Google App Engine:确定当前请求是否为任务队列

在我的请求处理程序的某些部分,我创建了一些urlfetches。如果请求是一个标准的http请求,我希望URL抓取的超时延迟很短,如果它是一个TaskQueue,则延长。

+0

有趣。我想我会包装创建一个TaskQueue请求添加一个额外的布尔值kwargs的代码。可能是凌乱的。 –

回答

7

接下面的HTTP标头中的任一个:

  1. X-AppEngine-QueueName,队列的名称(可能默认)
  2. X-AppEngine-TaskName,任务的名称,或系统生成的唯一的ID,如果没有名称被指定为
  3. X-AppEngine-TaskRetryCount,此任务已被重试的次数;对于第一次尝试,这个值是0
  4. X-AppEngine-TaskETA,任务的目标执行时间,自1月1日1970年

标准HTTP请求将不会有这些头以微秒指定。

2

任务请求始终包含特定的set of HTTP headers,您可以检查该请求。

+1

cron作业也是一样..'X-AppEngine-Cron:true' https://developers.google.com/appengine/docs/python/config/cron#Securing_URLs_for_Cron – Lipis

相关问题