cron.xml应用程序引擎中的云端点URL



我正试图在App Engine中设置一个cron作业,该作业通过Cloud Endpoint方法执行GET请求。

我已经用@neneneba API注释在Endpoint类中创建了GET方法

@ApiMethod(name = "cron.test", path="cron/test", httpMethod = HttpMethod.GET)
public void testCron() {
    ... // do something
}

在cron.xml中,我设置了:

<cronentries>
 <cron>
  <url>/_ah/api/MYAPI/v1/cron/test</url>
  <description>Send nightly reports.</description>
  <schedule>every 1 minutes</schedule>
  <timezone>America/Los_Angeles</timezone>
 </cron>
</cronentries>

AppEngine管理面板中的CronJobs视图显示Cron试图执行但失败。我做错了什么?端点方法的URL是否错误?

/_ah/api下的URL不归您的应用程序所有,它们归Google的API基础设施所有,因此您的应用不会收到这些请求。

需要考虑的几件事:

  • 将行为抽象到助手方法中,并在cron处理程序中调用该方法
  • 使用您直接定义的/_ah/spi处理程序

PS在未来,将日志中的任何错误包括在内会很有帮助,无论你是否没有看到任何错误(由于上述原因,这里几乎肯定会是真的)。

最新更新