我在Google App Engine的应用程序中的cron.xml中配置了一些cron作业
这些作业每天在我的应用程序版本上运行一次,并在db上进行一些工作。
例如,cron作业调用 v1.myapp.appspot.com ...
几周后,此应用程序实例似乎不再正常工作。它不像我期望的那样执行cron作业。
在GAE仪表板上,我找到了一个包含cron作业列表的部分,但我无法在那里看到我的cron作业。
为什么他们消失了?我的配置环境有什么问题?或者为什么google会停止执行我的cron作业?
答案 0 :(得分:0)
cron作业配置是应用程序范围的配置,它不是特定服务/版本的配置。每个cron部署(可以在不必更新服务/版本的情况下完成)将覆盖先前部署的部署。
为了避免意外错误,我在应用程序级别有一个cron配置文件,并根据需要在每个服务中进行符号链接。
如果要保留旧版本的cron作业,则需要为其添加一个配置条目,其目标与该服务/版本匹配,否则当该版本不再是默认版本时,cron作业将停止工作(因为cron触发的请求将被定向到默认服务/版本):
<?xml version="1.0" encoding="UTF-8"?> <cronentries> <cron> <url>/tasks/summary</url> <target>beta</target> <description>daily summary job</description> <schedule>every 24 hours</schedule> </cron> </cronentries>
目标规范是可选的,是a的名称 服务/版本。如果存在,则目标会预先添加到您的应用中 hostname,导致作业路由到该服务/版本。如果不 如果指定了target,则作业将以默认版本运行 默认服务。