端点API:运行长任务的方法

时间:2015-07-24 09:13:23

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

我们的GAE应用程序使用Google Cloud Endpoints API for Java,但我们需要其中一个端点执行一些复杂的操作,这些操作需要几分钟(超过请求超时)。 正如this question中所述,对于长时间运行的任务(< 10分钟对我来说足够了),我们应该使用任务队列API,但是根据文档:

  

注意:您无法直接从推送任务队列或cron作业调用Google Cloud Endpoint。

还有其他解决方案吗?理想情况下,我真的只想向特定端点发出请求,以重用处理程序的所有代码。 这可能吗?。

提前致谢,
  拉斐尔。

1 个答案:

答案 0 :(得分:0)

我会做以下事情:

  1. 将处理程序代码移至API方法之外的任务队列方法。
  2. 让方法现在返回一个映射到任务名称的操作ID。
  3. 拥有一个获取ID并返回任务状态的新方法。
  4. 在这种情况下,任务队列不会调用Endpoints方法。在这种情况下,我不清楚为什么你需要这样做,但是如果你需要,有一个解决方法,就是让任务队列调用一个内部URL然后调用Endpoints方法。