GAE cron工作意外关闭

时间:2017-01-09 20:56:04

标签: java google-app-engine cron

我在Google App Engine的应用程序中的cron.xml中配置了一些cron作业 这些作业每天在我的应用程序版本上运行一次,并在db上进行一些工作。
例如,cron作业调用 v1.myapp.appspot.com ...

几周后,此应用程序实例似乎不再正常工作。它不像我期望的那样执行cron作业。

在GAE仪表板上,我找到了一个包含cron作业列表的部分,但我无法在那里看到我的cron作业。

为什么他们消失了?我的配置环境有什么问题?或者为什么google会停止执行我的cron作业?

1 个答案:

答案 0 :(得分:0)

cron作业配置是应用程序范围的配置,它不是特定服务/版本的配置。每个cron部署(可以在不必更新服务/版本的情况下完成)将覆盖先前部署的部署。

为了避免意外错误,我在应用程序级别有一个cron配置文件,并根据需要在每个服务中进行符号链接。

如果要保留旧版本的cron作业,则需要为其添加一个配置条目,其目标与该服务/版本匹配,否则当该版本不再是默认版本时,cron作业将停止工作(因为cron触发的请求将被定向到默认服务/版本):

来自Creating a cron job

<?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,则作业将以默认版本运行   默认服务。