配置推送队列以便不重试

时间:2015-09-17 15:11:56

标签: java google-app-engine

在有关推送队列的Google App Engine文档中,提到任务队列应该是幂等的。

  

在实现任务代码时(作为应用中的工作者URL),   重要的是要考虑任务是否是幂等的。应用   Engine的Task Queue API只能调用给定的任务一次;   但是,在特殊情况下可以执行任务   执行多次(例如在主要系统的不太可能的情况下)   失败)。因此,您的代码必须确保没有任何危害   重复执行的副作用。

现在我想将任务配置为不在失败时重试。我怎么能用queue.xml做到这一点?使用此配置应用引擎在特殊情况下不会多次执行相同的任务?

1 个答案:

答案 0 :(得分:0)

根据documentation

  

在推送队列中,您可以指定自己的任务重试方案   在 queue.yaml 中添加retry_parameters指令。

我将 task_retry_limit 设置为0。

但我不确定这是否会在特殊情况下有所帮助。您引用的段落中的建议表明可能并非总是如此。

您可以使用数据存储区来精确跟踪/阻止到达应用代码关键部分的任务执行尝试 - 换句话说,确保不会出现重复执行的有害副作用(即遵循建议)。