将Cron作业与Appengine Endpoints API一起使用

时间:2014-05-02 23:09:52

标签: java google-app-engine cron google-cloud-endpoints

我使用Google App引擎和Endpoints API开发了后端。 其中一个Api方法是一个应该每X小时运行一次的工作并做一些合乎逻辑的工作。

我的问题是如何使用Cron Job调用此api方法。

我知道Api方法的URL,我甚至成功使用浏览器给她打电话。 但是当我尝试使用cron作业调用它时,作业失败并显示404错误代码。

这里是cron.xml:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
  <cron>
    <url>/_ah/api/meetingMatchingEndpoint/v1/matchingProcess</url>
    <description>Matching process</description>
    <schedule>every 1 minutes</schedule>
  </cron>
</cronentries>

当我尝试从浏览器中调用它并成功时,我写了完整的URL:

https://acadden-motif-344.appspot.com/_ah/api/meetingMatchingEndpoint/v1/matchingProcess

2 个答案:

答案 0 :(得分:2)

Google Cloud Endpoints的架构方式使您可以为实际代码提供设计良好的REST层。

话虽如此,我认为既然Cron Job也在同一个应用程序中运行,理想情况下你应该不通过调用REST API URL的路径。相反,您应该通过精心设计的Java类直接调用您的功能,这些Java类封装了您要调用的功能。

答案 1 :(得分:0)

您无法在framepersecond:float中指定以/_ah/api开头的网址,因为它们不会直接驻留在您的应用中,而是属于Google的API基础架构,因此会调用API不要来你的申请,所以你的申请不会收到这些请求。

  
    

解决方法:

  
     

在servlet中复制API的行为可能是并注册   在你的cron.xml文件中。