2017-10-25 3 views
0

私のlinux mintでuwsgiアプリケーションを実行しています。それはデータベースで動作し、私のlocalhostにそれを示しています。私はそれを実行する127.0.0.1 IP8080ポート。その後、私はその性能をab(apacheベンチマーク)でテストしたい。マルチスレッドで実行すると、uwsgiアプリケーションがエラーで停止する

私はコマンドuwsgi --socket 0.0.0.0:8080 --protocol=http -w wsgiでアプリケーションを実行し、それのテストを得るとき、それは正しくなく、ゆっくりと動作します。

私はスピードアップするために複数のスレッドでアプリを実行したいと思います。だから私は--threadsオプションを使用し、コマンドは例えばuwsgi --socket 0.0.0.0:8080 --protocol=http -w wsgi --threads 8です。 しかし、私はそれをテストするために2または3の要求の後、私のアプリケーションはいくつかのエラーで停止し、私はそれを修正する方法がわからない、abを実行する。私がそれを実行するたびに、エラーの種類が異なります。エラーの一部は、これらのようなものです:

(トレースバック(最新の呼び出しの最後):2014年、 '同期のコマンドアウト')

または

(トレースバック(最新の呼び出し最後のファイル):ファイル "./wsgi.py"、13行目、 アプリケーション return show_description(id)ファイル "./wsgi.py"、53行目、show_description カーソル.execute( "select * from info where id =%s; "%id)ファイル"/home/mohammadhossein/myFirstApp/myappenv/local/lib/python2.7 /のsite-packages/pymysql/cursors.py " ライン166、中 結果= self._query(クエリ)の実行ファイル" /home/mohammadhossein/myFirstApp/myappenv/local/lib/python2.7 /site-packages/pymysql/cursors.py "、 行322、_query conn.query(ファイル)" /home/mohammadhossein/myFirstApp/myappenv/local/lib/python2.7/site-packages/pymysql/ connections.py "クエリで、 ライン856、 self._affected_rows = self._read_query_result(バッファなし=バッファなし) 'パケットシーケンス番号 間違っ - 1は2を期待しました' ファイル)、" /ホーム/ mohammadhossein/myFirstApp/myappenv/_read_query_result内のローカル/ libに/ python2.7 /のsite-packages/pymysql/connections.py」、 ライン1057、

または

は - (最後の最も 最近の呼び出し)トレースバック( 'パケットシーケンス番号が間違っ1を得た2を期待'):

または

( 'パケットシーケンス番号が間違っ - 、2' を期待1を得た最後の)トレースバック(最も 最近の呼び出し):アプリケーションで リターンshow_description(ID)が "./wsgi.pyを" ファイル、13行目、 "./wsgi.py" ファイル、行52、in show_description cursor.execute( 'UPDATE info SET views = 1 WHERE id =%s;'、id)ファイル "/home/mohammadhossein/myFirstApp/myappenv/local/lib/python2.7/中のsite-packages/pymysql/cursors.py」、 ライン166、 結果を実行= self._query(クエリ)

は、複数のスレッドの安全性wiht私uwsgiアプリケーションを実行する方法を、私を助けてください。任意のヘルプは歓迎されます

答えて

0

それが解決しました。 各クエリ実行中にデータが失われないように、完全に別々のクエリごとに別々の接続を作成する必要があります。

関連する問題