2015-02-09 2 views
1

Как указать модуль и версию в GAE/J cron?Модуль и версия в GAE/J Cron

Я прочитал this страница.

Целевая строка добавляется к имени вашего приложения. Обычно это имя модуля. Задача cron будет перенаправлена ​​на версию именованного модуля по умолчанию. Обратите внимание, что при изменении версии модуля по умолчанию задание будет запущено в новой версии по умолчанию.

Если нет модуля с именем assigend to target, , то предполагается, что это версия приложения, а App Engine будет пытаться выполнить задание на эту версию. Займитесь Appengine-web.xml

Я понимаю, что либо имя модуля или версии могут быть указаны в <target>, но я хочу, чтобы указать как имя модуля и версии.

Как я могу это сделать?

+0

Вы могли это сделать? – Patrick

ответ

0

Для достижения вашей цели вам нужно будет найти два файла (appengine-web.xml, cron.xml). Как вы уже сказали, целевой тег вашего cron.xml позволит вам установить модуль или версию имя, поэтому, чтобы иметь возможность делать то, что вам нужно, вы можете установить имя приложения и версию модуля в appengine-web.xml. Затем вы можете определить имя модуля в целевом теге вашего cron.xml.

Приложение для Java App App должно иметь файл appengine-web.xml в своей WAR, в каталоге WEB-INF. Это файл XML, корневым элементом которого является <appengine-web-app>. Минимальный файл, который определяет идентификатор приложения, идентификатор версии, и никакие статические файлы или файлы ресурсов выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
    <application>_your_app_id_</application> 
    <version>1</version> 
    <threadsafe>true</threadsafe> 
</appengine-web-app> 

Файл cron.xml в каталоге WEB-INF вашего приложения (вместе с Appengine-сети .xml) управляет cron для вашего приложения Java. Ниже приведен пример cron.xml файл:

<?xml version="1.0" encoding="UTF-8"?> 
<cronentries> 
    <cron> 
    <url>/weeklyreport</url> 
    <description>Mail out a weekly report</description> 
    <schedule>every monday 08:30</schedule> 
    <timezone>America/New_York</timezone> 
    <target>version-2</target> 
    </cron> 
</cronentries> 

Надеется, что это помогает

0

Вы achive цели, если указать цель в таком формате: «Версия-точке-модуль»

это работал для меня:

<cron> 
    <url>/cron/test-cron</url> 
    <description>test-cron</description> 
    <schedule>every 1 minutes synchronized</schedule> 
    <target>v-5-1-dot-my-module-name</target> 
</cron> 

v-5-1 - версия моего модуля -модуль-имя мое - имя моего модуля