Как установить максимальное количество повторных попыток в очереди задач App Engine?

У меня есть следующие параметры повторной попытки:

<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. Так почему же он выходит за рамки этого? Как установить максимальное значение повторной попытки? Я использую стандарт App Engine с очередью задач на основе push и Java 8 env. Спасибо.


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);

person johndoe    schedule 21.11.2019    source источник


Ответы (1)


Я думаю, что ваша проблема связана с тем фактом, что использование queue.xml устарело . Вместо этого следует использовать queue.yaml.

Также следует помнить, что если вы используете API Cloud Tasks для управления своей очередью, это может вызвать некоторые столкновения. В этой документации вы найдете информацию о том, как решать наиболее распространенные проблемы. .

person Miguel    schedule 21.11.2019
comment
Я не использую API Cloud Tasks. Я использую com.google.appengine.api.taskqueue.TaskOptions для отправки в очередь. Если я укажу yaml, то произойдет сбой развертывания, потому что он не может найти эти файлы. То же самое для конфигурации appengine-web. Поэтому я использую файлы xml. - person johndoe; 21.11.2019
comment
Не могли бы вы отредактировать свой вопрос с минимальным воспроизводимым кодом, чтобы я мог помочь вам в дальнейшем? - person Miguel; 22.11.2019
comment
Спасибо, что поделились фрагментом. Я думаю, что вам следует использовать класс RetryOptions и поместите эти параметры в свою очередь, как вы уже делаете с TaskOptions. - person Miguel; 26.11.2019