cron.xml App Engine中的Cloud Endpoint URL

时间:2013-08-05 14:40:54

标签: cron google-cloud-endpoints

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

我使用@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>

App Engine管理面板中的Cron Jobs视图显示cron尝试执行但失败。我究竟做错了什么?端点方法的URL是错误的吗?

1 个答案:

答案 0 :(得分:1)

/_ah/api下的网址不属于您的应用程序,它们归Google的API基础架构所有,因此您的应用程序将不会收到这些请求。

需要考虑的一些事项:

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

PS将来,如果您没有看到任何错误,也可以包含您日志中的任何错误(由于上述原因,这里几乎肯定会出现这种错误)。