如何在 App Engine 任务队列中设置最大重试值?

How to set a max retry value in App Engine Task Queue?

我有以下重试参数:

<retry-parameters>
    <task-retry-limit>7</task-retry-limit>
    <task-age-limit>1d</task-age-limit>
    <min-backoff-seconds>1</min-backoff-seconds>
    <max-backoff-seconds>30</max-backoff-seconds>
</retry-parameters>

但是当我检查队列时,我看到像 45 这样的重试。我已经将 task-retry-limit 设置为 7。那么为什么它会超出这个范围呢?如何设置最大重试值?我正在使用基于推送的任务队列和 Java 8 env 的 App Engine 标准。谢谢


private Queue fsQueue = QueueFactory.getQueue(FS_QUEUE_NAME);
// ...

Product fp = new Product();
fp.setId("someid");
// ...
TaskOptions opts = TaskOptions.Builder.withUrl("/api/task/fs/product").method(TaskOptions.Method.POST)
                .payload(utils.toJSONBytes(fp), "application/json");
fsQueue.add(opts);

我认为您的问题与使用 queue.xml 作为 deprecated. You should be using the queue.yaml 这一事实有关。

您还应该记住,如果您使用 Cloud Tasks API to manage your queue as well this might cause some collisions. In this documentation,您会找到有关如何处理最常见问题的信息。