3

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

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

谢谢

4

2 回答 2

9

假设您正在使用推送队列,您可以检查是否设置了任何任务队列标头

标题是:

X-AppEngine-QueueName
X-AppEngine-TaskName
X-AppEngine-TaskRetryCount
X-AppEngine-TaskExecutionCount
X-AppEngine-TaskETA
于 2013-02-12T17:54:26.937 回答
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 以防止外界调用它。

于 2013-02-12T17:56:51.330 回答