Запускайте задачу каждый час в час с помощью API cron App Engine - PullRequest
3 голосов
/ 01 октября 2009

Мне нужно запускать задачу каждый час в час (00:00, 01:00, 02:00, ..., 23:00) каждый день недели, но, похоже, не могу найти пример в документации App Engine о том, как это сделать.

Существует пример запуска по запросу каждый час, но он не подходит, потому что «начало» этого часа зависит от того, когда вы развернете приложение. То есть, если я развернусь в 16:37, сценарии cron будут выполняться в 5:37, 6:37, ... вместо 5:00, 6:00, ...

Пока единственный способ, который выглядит так, как будто он будет работать, - это иметь 24 разных записи cron, по одной на определенный час каждого дня, установленный для работы каждый день в это конкретное время.

Кто-нибудь знает что-нибудь, что позволило бы мне использовать расписание, например «каждый час в 00:00» или даже «каждый день 00:00, 01:00, ... 23:00»?

Ответы [ 4 ]

5 голосов
/ 13 сентября 2011

Вы могли бы сделать это и отказаться от точного часа, но это будет близко ...

(Пример пришел из приложения, которое я отлаживал)

cron:
- description: Description of what you want done...
  url: /script/path/goes/here
  schedule: every 60 minutes synchronized
  timezone: America/New_York

Ниже приведен скриншот журналов, приложение сейчас не получает трафика, 99% этих записей - все записи cron.

enter image description here

--- редактировать ---

Просто перечитайте также документы, и, возможно, это будет лучше,

  schedule: every 60 minutes from 00:00 to 23:59
4 голосов
/ 01 октября 2009

К сожалению, синтаксис cron не позволяет указывать время для интервалов менее суток. Однако вы можете использовать Task Queue для этого. Или:

  1. Иметь одну запись в очереди задач, которая при запуске ставит новую задачу в очередь с обратным отсчетом, установленным на количество секунд до следующего запуска.
  2. Иметь ежедневное задание cron, которое ставит в очередь 24-часовые записи в очереди задач каждый раз, когда вы хотите, чтобы оно запускалось.
1 голос
/ 01 октября 2009

Документы говорят, что вы можете иметь 20 записей хрон, поэтому вы не можете иметь их на каждый час дня.

Вы можете запускать задание каждую минуту и ​​проверять, является ли это первой минутой часа, иначе выходите.

0 голосов
/ 01 октября 2009

Просматривая документы, я согласен с тем, что ваша идея входа в 24 крон является единственным документированным способом, который будет работать. Не идеально, но должно работать.

...