如何在GAE / J cron中指定模块和版本?
我看了this页。
目标字符串会添加到您应用的主机名之前。 它通常是模块的名称。 cron作业将路由到指定模块的默认版本。 请注意,如果模块的默认版本发生更改, 该作业将以新的默认版本运行。
如果没有名为assigend的模块要定位, 该名称被假定为应用程序版本,App Engine将尝试 将作业路由到该版本。请参见关于appengine-web.xml
我的理解是,可以在<target>
中指定模块名称或版本,但我想指定模块名称和版本。
我该怎么做?
答案 0 :(得分:0)
为了实现目标,您需要查找两个文件(appengine-web.xml,cron.xml),正如您已经说过的,cron.xml的目标标记将允许您设置模块或版本名称,为了能够做你需要的,你可以在appengine-web.xml中设置应用程序名称和模块版本,然后你可以在你的cron.xml的目标标签中定义模块名称。
App Engine Java应用程序必须在其WAR中的WEB-INF目录中有一个名为appengine-web.xml的文件。这是一个XML文件,其根元素为<appengine-web-app>
。指定应用程序ID,版本标识符以及没有静态文件或资源文件的最小文件如下所示:
<?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>
应用程序的WEB-INF目录中的cron.xml文件(以及appengine-web.xml)控制Java应用程序的cron。以下是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>
希望有所帮助
答案 1 :(得分:0)
如果您以这种格式指定目标,您将实现目标:&#34; version-dot-module&#34;
这对我有用:
<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 - 我的模块版本 my-module-name - 我的模块名称