python - App Engine(python)在生产中跳过 webapp 中间件(如 Appstats),但在开发服务器上运行良好

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

我正在使用 App Engine python 托管应用程序,并且喜欢使用 Appstats 和其他几个作为中间件运行的库。但是,当我通过 appengine_config.py(如下所示)设置中间件时,它可以在开发服务器上运行,但不能在生产服务器上运行。 Appstats 和 gaesessions 在开发服务器中工作得很好,在生产中根本不起作用。这是我的 appengine_config.py,位于我的根/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

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

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

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()

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

最佳答案

我认为问题在于您如何导入 SessionMiddleware。尝试将 gaesessions 放在项目目录的顶层。

这是我成功使用的appengine_config.py:

from gaesessions import SessionMiddleware
from google.appengine.ext.appstats import recording

def webapp_add_wsgi_middleware(app):
    app = SessionMiddleware(app, cookie_key="s3cr3t")
    app = recording.appstats_wsgi_middleware(app)
    return app

关于python - App Engine(python)在生产中跳过 webapp 中间件(如 Appstats),但在开发服务器上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3349147/

相关文章:

ASP.NET 在 Web 应用程序而不是网站中添加 Razor 页面,无 MVC

python - 跳过数组中的特定索引(或寻址索引间隔)

google-app-engine - 使用 Google App Engine 创建引用自身的模型

java - Google App Engine 中的 RSA

python - 如何在 (Python) Google App Engine 数据源上正确执行一对多联接?

在现有 tomcat 安装上运行 Web 应用程序的 Eclipse

python - 打开文件的最pythonic方式是什么?

追加空列表时应为空的 Python 列表

python - 创建 Web 服务最佳实践

javascript - 使用 jQuery 进行实时会计更改