在有关推送队列的Google App Engine文档中,提到任务队列应该是幂等的。
在实现任务代码时(作为应用中的工作者URL), 重要的是要考虑任务是否是幂等的。应用 Engine的Task Queue API只能调用给定的任务一次; 但是,在特殊情况下可以执行任务 执行多次(例如在主要系统的不太可能的情况下) 失败)。因此,您的代码必须确保没有任何危害 重复执行的副作用。
现在我想将任务配置为不在失败时重试。我怎么能用queue.xml做到这一点?使用此配置应用引擎在特殊情况下不会多次执行相同的任务?
答案 0 :(得分:0)
在推送队列中,您可以指定自己的任务重试方案 在 queue.yaml 中添加retry_parameters指令。
我将 task_retry_limit 设置为0。
但我不确定这是否会在特殊情况下有所帮助。您引用的段落中的建议表明可能并非总是如此。
您可以使用数据存储区来精确跟踪/阻止到达应用代码关键部分的任务执行尝试 - 换句话说,确保不会出现重复执行的有害副作用(即遵循建议)。