Как запускать задания GAE cron как конкретную версию приложения?

Недавно я начал использовать ограниченную постановку в своем проекте Google App Engine. Данные по-прежнему распределяются между всеми версиями, но поведение (особенно поведение, обращенное к пользователю) отличается.

Естественно, когда я реализую что-то невероятно новое, оно работает только с последней версией моего кода, и я не чувствую, что его следует переносить на более старые версии.

Некоторые из этих новых функций требуют периодического запуска заданий cron, но я столкнулся с проблемой. Мне нужно запустить задание cron, чтобы вызвать последний код, но в документации Google говорится об этой проблеме:

Cron requests are always sent to the default version of the application.

Версия по умолчанию является самой старой, потому что первые версии клиентского кода, которые были отправлены пользователям, не были перспективными и не знали, как выбрать, какую версию API вызывать.

Итак, мой вопрос: как я могу обойти это ограничение и создать задание cron, которое будет вызывать последнюю версию приложения, а не версию по умолчанию?


person Swizec Teller    schedule 06.02.2011    source источник


Ответы (2)


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

В зависимости от того, сколько времени требуется для выполнения вашего задания cron, вы можете изменить сценарий задания cron на выполнение URLFetch на «http://latest.appname.appspot.com/cron_job_endpoint».

Если ваше задание cron занимает больше 10 минут, я бы спроектировал его таким образом, чтобы вы могли связывать различные задачи с помощью очередей задач.

person dplouffe    schedule 06.02.2011
comment
Спасибо за идею, я сделал простой API, который действует как мета-cron и просто вызывает URL-адрес фактического задания cron в соответствующей версии приложения. - person Swizec Teller; 07.02.2011

Теперь вы можете указать версию с помощью целевого тега.

<target>version-2</target>
person Andrew Uricchio    schedule 17.06.2011
comment
В cron.yaml можно добавить строку target: 2 - person hamx0r; 01.12.2015