任务队列不适用于开发服务器上的多个模块

时间:2014-11-06 00:39:05

标签: google-app-engine

我正在尝试设置两个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会起作用,因为它也会按名称而不是端口号来处理模块。

1 个答案:

答案 0 :(得分:0)

我发现主机标题的方法可以在App Engine SDK版本1.9.15的开发服务器上运行。

另请注意,这也是在code.google.com上发布的问题:Task queues don't work with multiple modules on development server