gpt4 book ai didi

python - GAE 中 deferred.defer 中的重试计数

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:23 27 4
gpt4 key购买 nike

我正在使用 GAE 的“deffered” ' 库 (python),它会在出现异常时自动重试任务。

有没有办法知道(在任务处理函数中)任务已尝试的次数?

我的最终目标是实现如下内容:

if num_tries >5:
email_admins()
raise deferred.PermanentTaskFailure

最初我认为我可以使用“TaskRetryOptions”来限制尝试次数,但我认为它没有为我的 email_admins() 调用提供机制。或者是吗?

[edit] 当然,我可以读取/写入 DB 或内存缓存的尝试次数,但我更愿意避免这种复杂性。如果可能的话,我更愿意从任务/任务队列中获取详细信息。

最佳答案

有几个headers会随着task自动设置 https://developers.google.com/appengine/docs/python/taskqueue/overview-push

X-AppEngine-TaskRetryCount, the number of times this task has beenretried; for the first attempt, this value is 0. This number includesattempts where the task failed due to a lack of available instancesand never reached the execution phase.

X-AppEngine-TaskExecutionCount, the number of times this task has previously failed during the execution phase. This number does not include failures due to a lack of available instances.

编辑 1

这些值可以访问:

num_tries  = self.request.headers.get('X-AppEngine-TaskRetryCount')

编辑 2

http://webapp-improved.appspot.com/api/webapp2.html#webapp2.get_request

延迟尝试:

request = webapp2.get_request()

关于python - GAE 中 deferred.defer 中的重试计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579606/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com