3

次のスタックを使用しています。

  • nginx
  • uwsgi
  • Python (フラスコ)

メイン データベースとして redis を利用する小さなアプリをセットアップしました。コードでは GET、SET、EXISTS、および EXPIRE のみを使用します。

端末でアプリを試すと、すべて正常に動作します。要求ごとに、コンテンツが利用可能 (EXISTS) かどうかをチェックします。そうでない場合は、コンテンツがロードされ、しばらくの間保存されます (SET、EXPIRE)。その後、コンテンツがユーザーに提示されます (GET)。

問題は、nginx/uwsgi 経由でアプリを実行するとすぐに、しばらくすると EXPIRE が無視されるように見えることです。値を削除して新たにロードする代わりに、新しいコンテンツが古いコンテンツに追加されます。これは、1 回だけでなく、数十回のように見えるため、値が非常に大きくなり、タイムアウトになることもあります。

私にとって最も奇妙なこと:uwsgiを再起動するとすぐに問題全体が消えます。
何か案が?

4

1 に答える 1

0

私はそれを理解しました!問題は、これら 2 つのインスタンスを「リサイクル」したことです。

md = markdown.Markdown(safe_mode="escape", output_format='html4')
h2t = html2text.HTML2Text()

http://github.com/saibotd/hackerhub/blob/master/app.py -> 22、23行目

リクエストごとにこれらのオブジェクトを再作成する必要があり、期待どおりに機能します。

于 2013-01-14T11:19:46.980 に答える