App Engine(python)在生产中跳过webapp中间件(如Appstats),但在dev服务器上运行正常

时间:2010-07-28 00:54:30

标签: python google-app-engine web-applications middleware appstats

我正在使用App Engine python来托管应用程序,并且很乐意使用Appstats和其他一些作为中间件运行的库。但是,当我通过appengine_config.py设置中间件时(如下所示),它可以在开发服务器上运行,但不能在生产环境中运行。 Appstats和gaesessions就像开发服务器中的魅力一样,在生产中根本不起作用。这是我的appengine_config.py,位于我的root / src目录中:

from com.impactpy.gaesessions import SessionMiddleware 
COOKIE_KEY = 'nice try' 
def webapp_add_wsgi_middleware(app): 
    from google.appengine.ext.appstats import recording 
    app = SessionMiddleware(app, cookie_key=COOKIE_KEY) 
    app = recording.appstats_wsgi_middleware(app) 
    return app 

有什么想法吗?

更新

所以我把它重新带回来,因为我再次尝试修复它无济于事。我把appengine_config.py煮到了:

from google.appengine.ext.appstats import recording

def webapp_add_wsgi_middleware(app):
    app = recording.appstats_wsgi_middleware(app)
    return app

和app.yaml包含

builtins:
- datastore_admin: on
- remote_api: on
- appstats: on

我的应用程序使用基本的webapp,每个请求处理文件的底部包括:

application = webapp.WSGIApplication( [
    ('/handler', myHandlerClass)
    ],debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

部署工作正常。应用程序已经持续了一年多,并且看到了很多请求。 myapp.appspot.com/_ah/stats出现显示带有刷新按钮的GUI,没有数据,并且显示消息“尚未记录任何请求”等等。我很困惑!

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

在我的情况下,我有一个持续的部署管道设置,忘了提交并推送\x y -> readFile "any.txt" :: a -> b -> IO (String)文件。仔细检查该文件是否可用。

此外,要进一步配置appstats模块,请参阅appengine sdk源代码中提供的文件:

appengine_config.py

这就是它

/google_appengine/google/appengine/ext/appstats/sample_appengine_config.py