2011-02-06 3 views
5

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

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

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

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

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

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

ответ

3

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

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

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

+0

Благодарим за идею, что я создал простой API, который действует как мета-cron и просто вызывает URL-адрес фактического cronjob в соответствующей версии приложения. –

12

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

<target>version-2</target> 
+2

В cron.yaml вы можете добавить строку 'target: 2' – hamx0r

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