我正在尝试设置两个Google App Engine模块,其中一个模块配置了基本缩放,以便它可以处理长时间运行的计算。前端模块与用户交互并将任务排入队列。
我需要前端模块能够为后端模块排队任务以获取任务并执行它。我已经把它主要用于工作,除非我将任务排入队列,它被分配为在前端模块而不是后端模块中运行。
问题出在开发服务器环境中。在生产App Engine上,似乎很清楚如何通过简单地在标题中使用" Host"参数:
Queue queue = QueueFactory.getDefaultQueue();
TaskOptions taskOptions = TaskOptions.Builder.withUrl("/longtest").param("content", content).header("Host", "nbsocialmetrics-backend");
log.info("SignGuestbookServlet taskOption " + taskOptions);
queue.add(taskOptions);
但是在开发服务器中,模块是通过端口号而不是模块名来寻址的。我不认为使用<target>
parameter会起作用,因为它也会按名称而不是端口号来处理模块。
答案 0 :(得分:0)
我发现主机标题的方法可以在App Engine SDK版本1.9.15的开发服务器上运行。
另请注意,这也是在code.google.com上发布的问题:Task queues don't work with multiple modules on development server