我们的 GAE 应用程序使用 Google Cloud Endpoints API for Java ,但我们需要其中一个端点来执行一些复杂的操作,这些操作需要几分钟(超过请求超时时间)。 如 this question 中所述,对于长时间运行的任务(<10 分钟对我来说足够了),我们应该使用任务队列 API,但根据文档:
Note: You cannot call a Google Cloud Endpoint directly from a push task queue or a cron job.
还有其他解决办法吗?理想情况下,我真的想只向特定端点发出请求,以重用处理程序的所有代码。 这可能吗?
提前致谢,
拉斐尔。
最佳答案
我会执行以下操作:
- 将处理程序代码移至 API 方法之外的任务队列方法。
- 现在让该方法返回映射到任务名称的操作 ID。
- 有一个接受 ID 并返回任务状态的新方法。
在这种情况下,任务队列不会调用 Endpoints 方法。我不清楚为什么在这种情况下需要这样做,但如果需要的话有一个解决方法,那就是让任务队列调用一个内部 URL,然后调用 Endpoints 方法。
关于java - 端点 API : way to run long tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31606594/