我们的GAE应用程序使用Java的Google Cloud Endpoints API,但是我们需要一个端点来执行一些复杂的操作,这些操作需要花费几分钟(比请求超时还要多)。正如这个问题中所述,对于长时间运行的任务(<10分钟对我来说足够了),我们应该使用任务队列API,但是根据文档:
注意:您不能直接从推送任务队列或cron作业中调用Google Cloud Endpoint。
还有其他解决方案吗?理想情况下,我真的希望只是向特定端点发出请求,以重用处理程序的所有代码。这可能吗?
提前感谢,
拉斐尔。
我会这样做:
- 将处理程序代码移到任务队列方法中,在API方法之外。
- 让方法现在返回一个操作ID,它映射到一个任务名。
- 有一个新的方法,接受ID并返回任务状态。
在这种情况下,任务队列没有调用端点方法。我不清楚为什么你需要这样做,在这种情况下,但有一个解决方案,如果你需要,这是有任务队列调用一个内部URL,然后调用端点方法。