我的任务超过了任务队列超过10分钟的最后期限。通过不同的文档,我发现使用模块我可以运行一个实例来处理长时间运行的任务,但最好甚至应该使用任务队列来完成。我曾经使用后端,但它们已被弃用。如何在Google App Engine中使用模块并使用任务队列(Java)向其添加目标?
我的问题是如何将模块引入到我现有的App Engine项目中,以及如何使用它们来运行长时间运行的任务?
以下是一段代码:
Queue queue = QueueFactory.getQueue("myqueue");
TaskOptions task = TaskOptions.Builder.withUrl("/submitworker").method(Method.POST);
queue.add(task);
我有什么变化,上面的代码,以增加使用一个模块一个长时间运行的任务? [在“submitworker”是一个servlet这是实际的长期运行的任务]
我曾提到this链接,但我无法与第三步得到解决:
3.添加服务声明元素的AppEngine上-application.xml文件。
此外,即使我成功地将模块添加到我的项目中,如何使用任务队列定位此模块?
我已经通过this的问题,但它是一个python实现,我的实现是在Java中。
我正在寻找一个如何在模块中使用“目标”以及如何在添加到任务队列时使用它的分步过程。
即使我将长时间运行的模块目标添加到任务队列,仍然会在10分钟后终止执行,或者即使任务队列中的任务过期,它是否会完成任务?
请建议。
谢谢......!我遵循了指南并成功地在应用引擎中创建了一项新服务。在queue.xml中也添加了,但是有什么办法可以知道这个任务真的是在后台执行的,我有一个代码显示了有关任务的不断更新,但是更新值没有在前端,可能是什么问题?另外,10分钟后,任务消失,即使它从任务队列中消失,任务仍在后端实例上执行吗? –
您可以在云控制台中查看任务的重试状态,并且如果您想记录该请求,则可以在请求中以标题的形式访问重试计数。您可以在云日志查看器中查看按服务细分的日志,以查看发生的情况。任务不应该消失,除非它成功或超过了重试次数。另外,当问题解决时,不要忘记接受最好的答案 - 它可以帮助每个人。 – Nick
谢谢@尼克!答案帮助我了解了应用程序引擎中的服务和模块,并使我的概念清晰明了。 –