Google App Engine: task_retry_limit doesn't work?

前端 未结 3 1193
情歌与酒
情歌与酒 2020-12-10 04:34

I have a Python GAE app.

I want my tasks to stop running or just retry once if they fail. Right now, they run forever despite what my yaml file is telling them!

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-10 05:25

    I had the same problem. The documentation and tooling in this area is lacking, but here's what I found:

    • The retry parameters have no effect in the development server. I tried lots of different combinations, but it was always just indefinite retries 30s apart. The parameters did take effect when I deployed to the production server.
    • I haven't found a way to disable all retries (other than by ensuring that my handler doesn't throw exceptions).
      • If task_retry_limit=0, then it still retries.
      • If task_retry_limit=0 and task_age_limit is set, then the queue.yaml is rejected with a message that task_retry_limit must be positive.
      • Similarly, it complains if task_age_limit=0.
      • If you set task_retry_limit=1 and task_age_limit=1s (apparently the minimum values), you still get one retry.
    • The minimum retry time is 20 seconds. If the delay specified by your configuration is les than 20, than it will just wait 20 seconds.
    • The time before the first retry is unpredictable; it seems to be randomly delayed by up to a minute. After that, the retries follow the configured schedule.

提交回复
热议问题