gpt4 book ai didi

java - 如何将 google app engine cron 作业路由到模块和版本

转载 作者:行者123 更新时间:2023-11-30 08:21:34 25 4
gpt4 key购买 nike

我有一个 Google 应用引擎 cron 作业,我想测试它并在特定模块和版本上运行。我该怎么做?

我尝试在 cron.xml 中指定目标:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/purgeAll</url>
<description>delete old entities</description>
<schedule>every day 10:45</schedule>
<timezone>America/Los_Angeles</timezone>
<target>ninaddev</target>
</cron>
</cronentries>

我还尝试在默认包中添加一个 dipatch.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<dispatch-entries>
<dispatch>
<module>internal</module>
<url>*/purgeAll</url>
</dispatch>
</dispatch-entries>

结果是 cron 在指定的版本 (ninaddev) 上运行,但没有在指定的模块(内部)上运行,我可以看到它在此处运行并带有日志。

我认为这是因为调度文件不能针对默认版本以外的版本 https://developers.google.com/appengine/docs/java/modules/routing :“您可以创建一个调度文件来覆盖未指定版本的 URL 的默认路由(如上所述)。”

可能相关的最后一件事是我正在按照此处指定的 EAR 结构一起上传我的模块(默认和内部):https://developers.google.com/appengine/docs/java/modules/

任何有关如何让 cron 在“ninaddev”版本和“internal”模块上运行的帮助将不胜感激。

最佳答案

我能够将 cron 作业路由到特定的模块版本,但我已经在 Python 中尝试过了。

我是这样做的:

  1. 我仅将目标字段用于版本,在您的案例中是内部版本。
  2. 在调度中,我将某个 URL 路径的所有内容路由到模块(在您的情况下为 */ninaddev-url)。

在 YAML 符号中(您也可以在 Java 项目中使用它们):

cron.yaml

cron:
- description: new job
url: /ninaddev-url
target: internal

调度.yaml

dispatch:
- url: '*/ninaddev-url'
module: ninaddev

如果需要,您可以保护对这些 URL 的访问。

关于java - 如何将 google app engine cron 作业路由到模块和版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25126677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com