我有一个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/
有关如何让“ninaddev”版本和“内部”模块运行cron的任何帮助都将不胜感激。
答案 0 :(得分:3)
我能够将cron作业路由到特定的模块版本,但我已经在Python中尝试过它们。
我是这样做的:
在YAML表示法中(您也可以将它们与Java项目一起使用):
cron.yaml
cron:
- description: new job
url: /ninaddev-url
target: internal
dispatch.yaml
dispatch:
- url: '*/ninaddev-url'
module: ninaddev
如果需要,您可以保护对这些网址的访问权限。