任务无声地失败(GAE)

时间:2011-12-19 23:47:40

标签: google-app-engine

我正在使用AppEngine的deferred.defer,大致基于this example

它在我的开发环境中运行良好,但在我部署的版本中,任务启动,然后无声地失败,然后重试。我可以在任务视图中看到任务,唯一的错误提示是在任务的“上一次运行”选项卡中显示:

  

上次http响应代码404

enter image description here

但我不知道404指的是什么。

我将函数中的logging.info语句传递给deferred,但没有任何内容写入日志。我已将整个事件包装在try / except块中,以及logging.error中的任何错误,但日志中仍然没有显示。

看起来有些事情阻止了任务的开始,但我不知道是什么。我已将内置添加到我的app.yaml:

application: xxx
version: xxx
runtime: python
api_version: 1

builtins:
- deferred: on

handlers:
... 

我该如何调试?

由于

1 个答案:

答案 0 :(得分:3)

事实证明任务试图在我的默认版本上运行,即使它是从不同版本调用的(感谢提示检查Nick)。

这是一个简单的解决方案。当第一次调用延期我做

version = os.environ['CURRENT_VERSION_ID'].split('.')[0]
deferred.defer(<fn_name>, <fn_variable>, _target=version)

由于

汤姆