Задания cron Google App Engine не выполняются и не повторяются - PullRequest
1 голос
/ 18 июня 2019

У меня есть простой файл cron.xml, который я использую для выполнения разных заданий.Я развернул его в движке приложения, и он без проблем работает в течение нескольких недельВсе время от времени происходит сбой cron с ошибкой ниже.Странная часть заключается в том, что он не повторяет попытку, даже если у меня есть параметры повторения.

Я также заметил, что все последующие задания cron не будут выполнены, пока я не разверну свое приложение.

Ошибка:

Process terminated because the request deadline was exceeded. (Error code 123)

Cron.xml

<cron>
  <url>/conrurl</url>
  <description>Cron Description</description>
  <schedule>every 30 minutes from 06:00 to 22:00</schedule>
  <retry-parameters>
    <min-backoff-seconds>2.5</min-backoff-seconds>
    <max-doublings>5</max-doublings>
  </retry-parameters>
  <timezone>America/Montreal</timezone>
  <target>backend</target>
</cron>

1 Ответ

0 голосов
/ 22 июня 2019

Для меня это выглядит как ошибка HardDeadlineExceededError (см. Фрагмент документа и ссылку ниже).

Как долго длится работа cron? Если я вижу, что крайний срок превысил ошибки, и информация о времени не доступна из другого источника, я оберну свою функцию основным таймером, чтобы выяснить это. Я не пишу много на Java, но вот пример: https://www.geeksforgeeks.org/measure-time-taken-function-java/

Из документации AppEngine :

В среде выполнения Java, если исключение DeadlineExceededException не перехвачено, генерируется неуловимая ошибка HardDeadlineExceededError. Экземпляр завершается в обоих случаях, но HardDeadlineExceededError не дает никакого запаса времени для возврата пользовательского ответа.

...