2

openerp のパフォーマンスをテストするために、新しいレリック ( http://www.newrelic.com ) を開発サーバーに実装しようとしています。

以下の newrelic のインストール手順では、WSGI アプリケーション ファイルを変更するよう求められます。私はopenerpが初めてで、これを理解できないようです。どんな助けでも大歓迎です。

同じ WSGI アプリケーション ファイル内で、実際の WSGI アプリケーション エントリ ポイントの周りにラッパーを追加する必要があります。WSGI アプリケーション エントリ ポイントがファイル自体で宣言された関数である場合は、デコレータを使用できます。

    @newrelic.agent.wsgi_application()
    def application(environ, start_response):
        ...

WSGI アプリケーション エントリ ポイントが別のモジュールからインポートされた関数またはオブジェクトである場合は、プリ デコレータ スタイルでラップできます。

    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
    application = newrelic.agent.wsgi_application()(application)

次に、WSGI スクリプト ファイルまたはモジュールをリロードするために使用している特定の WSGI ホスティング メカニズムを再起動する必要があります。

4

2 に答える 2

2

新しいレリックをテストしたとき、WSGI ハンドラー (いくつかあります) にパッチを当てるのは大変でした。ただし、新しいレリックの命令と監視を使用して gunicorn の下でサーバーを実行すると、コードの変更はまったく必要ありませんでした。

于 2012-08-29T18:36:31.677 に答える
0

WSGI については何も知りませんが、この方法server/openerp/wsgi/core.pyは有望に見えます。

def wsgi_xmlrpc_1(environ, start_response):
    """ The main OpenERP WSGI handler."""
    if environ['REQUEST_METHOD'] == 'POST' and environ['PATH_INFO'].startswith(
            XML_RPC_PATH_1):
        length = int(environ['CONTENT_LENGTH'])
        data = environ['wsgi.input'].read(length)

また、Gunicorn に関するブログ投稿が関連している場合もあります。

于 2012-05-08T18:45:39.710 に答える