【问题标题】:Module and Version in GAE/J CronGAE/J Cron 中的模块和版本
【发布时间】:2015-04-08 23:13:03
【问题描述】:

如何在 GAE/J cron 中同时指定模块和版本?

我阅读了this 页面。

目标字符串附加在您应用的主机名之前。 它通常是模块的名称。 cron 作业将被路由到命名模块的默认版本。 请注意,如果模块的默认版本发生更改, 该作业将以新的默认版本运行。

如果没有名称为分配目标的模块, 该名称被假定为一个应用版本,并且 App Engine 将尝试 将作业路由到该版本。请参阅关于 appengine-web.xml

我的理解是<target>中可以指定模块名称或版本,但我想同时指定模块名称和版本。

我该怎么做?

【问题讨论】:

  • 你能做到吗?

标签: google-app-engine cron


【解决方案1】:

为了实现您的目标,您需要查找两个文件(appengine-web.xml、cron.xml),正如您已经说过的,您的 cron.xml 的目标标签将允许您设置模块或版本名称,所以为了能够做你需要的,你可以在appengine-web.xml中设置应用名称和模块版本,然后你可以在你的cron.xml的target标签中定义模块名称。

App Engine Java 应用程序的 WAR 中必须有一个名为 appengine-web.xml 的文件,该文件位于 WEB-INF 目录中。这是一个根元素为<appengine-web-app> 的XML 文件。指定应用程序 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>

希望对你有帮助

【讨论】:

    【解决方案2】:

    如果您以这样的格式指定目标,您将实现您的目标:“version-dot-module”

    这对我有用:

    <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 - 我的模块名称

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多