1

我正在使用 Goole App Engine 任务队列 API 来学习如何使用它。但我无法让它在本地触发。当我上传到 Google 服务器时,我的应用程序运行起来非常棒。但它不会在本地触发。我从管理员那里看到的只是任务列表。但是当他们的 ETA 到来时,他们只是通过了它。就像他们运行但他们失败并等待重试一样。但是我在命令行上看不到这些事件。

当我尝试在管理面板上单击“运行”时,它运行成功,我可以从命令行看到这些请求。我在带有 google-app-engine-django 的 Linux 上使用 App Engine SDK 1.3.4。我正在尝试从 3 小时内找到问题,但我找不到它。调试 GAE 应用程序也非常困难。因为调试消息不会出现在控制台屏幕上。

谢谢。

4

2 回答 2

1

开发服务器不会自动运行任务,你必须自己设置它们。这是一项设计功能,因此您可以看到运行它们时会发生什么,而不是它们在任何时候运行。

本质上,您的应用程序没有任何问题,它是开发服务器的一项功能。

于 2010-05-29T15:43:10.937 回答
0

本地开发服务器现在确实支持队列。本地开发中模块的诀窍在于,在不同(动态)端口上部署到本地主机,而不是使用不同的域名。将任务发送到队列时需要执行的操作需要添加队列正在侦听的主机以及队列 URL。这是一个Java示例(对不起)。Python 也有类似的方法:

    ModulesService moduleService = ModulesServiceFactory.getModulesService();
    String hostNameToQuery = moduleService.getVersionHostname("worker_module_name", null);
    logger.info("hostNameToQuery=" + hostNameToQuery);
    TaskOptions options = TaskOptions.Builder
            .withUrl("/workerQueueURL")
            .header("Host", hostNameToQuery)
            .param("taskKey", taskKeyString)
            .retryOptions(RetryOptions.Builder.withTaskRetryLimit(0));

让我知道这是否对您有用。

于 2014-09-30T16:47:08.913 回答