Хобрук: Ваш путь к мастерству в программировании

Задание GAE cron неожиданно завершает работу

У меня есть несколько заданий cron, настроенных в файле cron.xml в приложении Google App Engine.
Эти задания работают один раз в день в версии моего приложения и выполняют некоторую работу с базой данных.
Например, задание cron вызывает v1.myapp.appspot.com...

Через несколько недель этот экземпляр приложения перестал работать правильно. Он не выполняет задания cron, как я ожидаю.

На GAE Dashboard я нашел раздел со списком заданий cron, но я не вижу там своих заданий cron.

Почему они исчезли? Что не так с моей средой конфигурации? или Почему Google останавливает выполнение моих заданий cron?


  • Вы развернули какую-то другую версию приложения или обновили задания cron, так как это задание cron работало? 10.01.2017
  • Также может помочь показать содержимое cron.xml для отсутствующих заданий. 10.01.2017
  • Также может быть, что вы запускаете его на бэкэнд-экземпляре. Проверьте свою цель и версии и разверните соответствующие версии и файлы yaml (app.yaml, cron.yaml, backend.yaml и т. д.). 10.01.2017
  • @DanCornilescu Да, изначально у меня была версия с заданиями cron. Затем я добавил еще одну версию с другим заданием cron. 11.01.2017
  • @GAEfan В чем разница между установкой версии в задании cron в файле cron.xml и не установкой версии? Если я не установлю версию, cron запустит версию по умолчанию, иначе нет. Но если у меня, например, только одна версия по умолчанию, и я не устанавливаю версию в задании cron, могут быть проблемы? 11.01.2017

Ответы:


1

Конфигурация задания cron — это конфигурация области действия всего приложения, а не конфигурация конкретной службы/версии. Каждое развертывание cron (которое можно выполнить без обязательного обновления службы/версии) перезапишет ранее развернутое.

Чтобы избежать случайных ошибок, лично у меня есть один конфигурационный файл cron на уровне приложения, с символической ссылкой внутри каждой службы по мере необходимости.

Если вы хотите оставить задание cron для более старой версии, вам нужно добавить для него запись конфигурации с целью, соответствующей этой службе/версии, в противном случае задание cron перестанет работать, когда эта версия перестанет быть версией по умолчанию (поскольку запросы, запускаемые cron, будут направлены на службу/версию по умолчанию):

Из Создание задания cron:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/tasks/summary</url>
    <target>beta</target>
    <description>daily summary job</description>
    <schedule>every 24 hours</schedule>
  </cron>
</cronentries>

Целевая спецификация не является обязательной и представляет собой имя службы/версии. Если он присутствует, цель добавляется к имени хоста вашего приложения, в результате чего задание перенаправляется на эту службу/версию. Если цель не указана, задание будет выполняться в версии службы по умолчанию по умолчанию.

11.01.2017
Новые материалы

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...