2013-03-19 6 views
2

Что такое минимальное и максимальное расписание cron? И как долго может работать cron? 24 часа? Приведенный ниже код работает с расписанием - 1 минута.Google App Engine Cron расписание и длина

cron: 
    - description: test 
     url: /test 
     schedule: every 1 minutes 

Но я хочу, чтобы сделать его 30 секунд

Так что я написал

cron: 
    - description: test 
     url: /test 
     schedule: every 30 seconds 

Но это просто возвращает ошибку при обновлении приложения.

ответ

6

Cron не поддерживает детализацию менее одной минуты. Что же касается, как долго будет хрон в GAE будет работать, the docs said:

запрос HTTP вызывается хрон может работать до 10 минут, но при условии соблюдения тех же пределах, что и другие запросы HTTP.

Это подсказывает мне, что запросы cron обрабатываются одинаково с запросами очереди задач. Запросы к экземпляру во внешнем интерфейсе есть 10 минут, чтобы закончить выполнение, в то время как запросы бакэнда have a 24-hour deadline.

Edit: Если вы действительно нужны 30 секунд детализации на ваши хронах, немного обходной пути можно за счетом использования countdown property задачи в TaskQueue. Этапы заключаются в следующем:

  1. Имейте одноминутный cron, который выполняет другой сервлет, чем ваш предполагаемый/тестовый сервлет.
  2. Попросите этот сервлет создать две задачи, которые указывают на предполагаемый/тестовый сервлет. Каждая из задач имеет 30 и 60 значений для своего свойства countdown.
  3. Задайте обе задачи в TaskQueue.

В качестве альтернативы, вы можете предвычисление намеченную ETA на 30 секунд и 60 секунд от начала сервлета, и поместить его в eta property вместо лучшего зернистости.

Окончательное предупреждение, eta и countdown не гарантирует выполнение задачи в точно установленные сроки. Если ваша очередь насыщена или ваши экземпляры перегружены, можно ожидать некоторую задержку.

+0

Хороший ответ, и вы правы, что запросы cron имеют те же сроки, что и запросы TaskQueue. –

Смежные вопросы