如何确定当前请求是否为任务 - GAE

时间:2013-02-12 17:50:25

标签: java google-app-engine

我正在使用带有Java的Google AppEngine和内置的任务队列。

有没有办法确定当前调用是来自任务队列的任务?

感谢

2 个答案:

答案 0 :(得分:7)

假设您正在使用推送队列,您可以检查是否设置了Task Queue headers

标题是:

X-AppEngine-QueueName
X-AppEngine-TaskName
X-AppEngine-TaskRetryCount
X-AppEngine-TaskExecutionCount
X-AppEngine-TaskETA

答案 1 :(得分:3)

来自https://cloud.google.com/appengine/docs/java/taskqueue/push/creating-handlers#writing_a_push_task_request_handler的GAE文档:

  • X-AppEngine-QueueName,队列名称(可能是默认值)
  • X-AppEngine-TaskName,任务名称,如果未指定名称,则为系统生成的唯一ID
  • X-AppEngine-TaskRetryCount,此任务已重试的次数;对于第一次尝试,此值为0.此数字包括由于缺少可用实例而从未到达执行阶段而导致任务失败的尝试。
  • X-AppEngine-TaskExecutionCount,此任务在执行阶段之前失败的次数。此数字不包括由于缺少可用实例而导致的失败。
  • X-AppEngine-TaskETA,任务的目标执行时间,自1970年1月1日起以微秒为单位。

请注意,如果您真的担心请求的来源,可以保护任务URL以防止外界调用它。