4

gunicorn を使用して Heroku でファルコン アプリを提供しようとしています。

falcon のドキュメントにほぼ従い、基本的なアプリケーションを作成しました。

要求を処理するときに各リソースに接続カーソルを追加するために psycopg2 を使用しています。

web: gunicorn app:api --log-level=DEBUG --worker-class=gevent

しかし、現在、すべてのリクエストはタイムアウトになります。

Feb 06 18:10:01 d.19db00e4-faf8-47bc-aaea-c78a52163a24 heroku/router:  at=error code=H12 desc="Request timeout" method=GET path="/" host=falcon-raptor-api.herokuapp.com request_id=3b29350f-8990-430c-92e8-02458d91a2f9 fwd="54.91.242.125" dyno=web.1 connect=1ms service=30001ms status=503 bytes=0 

これはpsycopg2またはgunicorn、あるいはその両方の問題だと思います。

何かアドバイス?

4

3 に答える 3

0

gevent greenthead 内でブロッキング呼び出しが行われているようです。アプリケーションのできるだけ早い段階で、関連するネットワーク ライブラリ (socket、psycopg2 など) に手動でパッチを適用するか、モンキー パッチを適用してください。

スレッド化で gevent モンキー パッチを使用すると、スレッドがシリアルに機能する を参照してください。

于 2016-02-07T04:48:55.743 に答える