1

我正在尝试在 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 是否错误?

4

1 回答 1

1

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

有几点需要考虑:

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

PS 将来,还可以在您的日志中包含任何错误或您没有看到任何错误(由于上述原因,这在此处几乎可以肯定是正确的)。

于 2013-08-05T17:17:36.177 回答