Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Служба Cron App Engine позволяет запланировать задачи, регулярно выполняемые в определенное время или через определенные временные интервалы. Эта задачи известны как задачи Cron. Они автоматически запускаются службой Cron App Engine. Например, ее можно использовать, чтобы ежедневно отправлять отчеты по электронной почте, обновлять данные кэша каждые 10 минут или какую-либо сводную информацию каждый час.
Задача Cron вызывает URL в заданное время. URL-адреса, вызываемые службой Cron, подпадают под те же ограничения и квоты, что и обычные HTTP-запросы, включая ограничение на время запроса.
Для приложения можно запланировать до 20 задач.
Файл cron.xml, хранящийся в каталоге WEB-INF приложения (вместе с файлом appengine-web.xml) позволяет управлять задачами Cron для приложения Java. Вот пример файла cron.xml:
<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/recache</url>
<description>Repopulate the cache every 2 minutes</description>
<schedule>every 2 minutes</schedule>
</cron>
<cron>
<url>/weeklyreport</url>
<description>Mail out a weekly report</description>
<schedule>every monday of month 08:30</schedule>
<timezone>America/New_York</timezone>
</cron>
</cronentries>
Определение схемы XSD можно посмотреть в файле docs/cron.xsd SDK.
Файл cron.xml состоит из ряда определений задач. Определение задачи включает URL (<url>) и расписание (<schedule>). Дополнительно можно указать описание (<description>) и часовой пояс (<timezone>). Описание будет доступно в консоли администрирования.
В поле url указывается URL приложения. Формат поля schedule более подробно рассмотрен в статье Формат расписания.
Часовой пояс нужно указывать в виде стандартного названия часового пояса zoneinfo. Если часовой пояс не указан, задачи выполняются по времени UTC (также известном как GMT).
Расписание задач Cron задается в простом формате на английском языке.
Вот примеры расписаний:
every 5 minutes every 12 hours 2nd,third mon,wed,thu of march 17:00 every monday of month 09:00 1st monday of sep,oct,nov 17:00
Если повторяющуюся задачу нужно выполнять не в определенное время, а через регулярные интервалы, используйте форму every N (hours|mins|minutes), где N – количество часов или минут, которое задает интервал. Минимальный временной интервал между запуском задач составляет одну минуту.
Более определенное расписание можно задать следующим образом:
("every"|ordinal) (days) "of" (monthspec) (time)
Скобки используется только в иллюстративных целях. Кавычки обозначают литерал.
Где:
Пользователям можно запретить доступ к URL-адресам запланированных задач, предоставив к ним доступ только аккаунтам администраторов. Запланированные задачи могут получить доступ только к URL для администраторов. Ограничение доступа к URL описано в разделе Безопасность и аутентификация. Пример части файла web.xml, в которой доступ ко всем URL, начинающимся с /cron/, разрешен только администраторам:
<security-constraint>
<web-resource-collection>
<url-pattern>/cron/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
Формат файла web.xml описан в документации по дескриптору развертывания.
Чтобы проверить задачу Cron, выполните вход с правами администратора и в браузере перейдите по URL обработчика.
Запросы из службы Cron содержат HTTP-заголовок:
X-AppEngine-Cron: true
Его следует проверить, чтобы убедиться, что только запросы из службы Cron могут вызвать этот обработчик.
Чтобы добавить задачи Cron, можно использовать AppCfg. При добавлении приложения в App Engine с помощью AppCfg update, служба Cron обновляется вместе с содержанием файла cron.xml. Можно лишь обновить конфигурацию службы Cron без загрузки оставшейся части приложения с помощью команды AppCfg update_cron.
Чтобы удалить все задачи Cron, оставьте в файле cron.xml только:
<?xml version="1.0" encoding="UTF-8"?> <cronentries/>
В Консоли администрирования можно просматривать состояние задач Cron. Чтобы узнать их состояние, в том числе время последнего выполнения задачи и ее результат, нажмите на ссылку "Задачи Cron" в боковом меню.
Чтобы просмотреть добавленные или удаленные задачи, нажмите на ссылку "Журналы администрирования" в меню Консоли администрирования.
appserver разработки не выполняет задачи Cron автоматически. Можно использовать интерфейс запланированных задач или задач Cron настольного компьютера, чтобы вызвать URL задач с помощью инструмента curl или аналогичного ему.