sqlalchemy:応答が送信された後にデータベースへの書き込み
-
26-09-2019 - |
質問
私はほぼ以下を行う簡単なサービスを持っています:
- HTTPクライアントがサーバーに接続します
- サーバーは、クライアントのセッションIDとタイムスタンプをデータベースに書き込み、ほとんどの場合、空の応答を返すだけです
(実際の作業を行い、実際のデータを返す場合は、この質問とは無関係です)
この応答をできるだけ早く返すために、リクエストハンドラーの本体でmemcacheに情報を書き込み、sqlalchemyを使用して別の関数が永続的に書き込む別のスレッドを生成するために保管所。このようにして、Memcacheに書き込み、スレッドを生み出した直後に戻ることができます。リクエストハンドラーは、SQLalchemyがデータをデータベースに保存するまで待つ必要はありません。
これは理にかなっていますか?はいの場合、どのように実装する必要がありますか?
解決
のようなものを使用できます セロリ分散タスクキュー 処理を他のマシンにオフロードします。個別のインフラストラクチャのセットアップが必要ですが、バックグラウンドでの処理のためのWebリクエストからタスクを引き渡すことができますが、リクエストへのHTTP Repsonseはすぐに返品できます。
所属していません StackOverflow