Flask でユーザー セッションごとに一意の Rserve 接続を維持するにはどうすればよいですか?
Flask セッションでの一意の接続を維持する
問題:
Flask アプリケーションでは、次のことが必要になります。ユーザー セッションごとにサービス (この場合は Rserve) への一意の接続を確立し、維持します。接続オブジェクトをセッションに保存すると、非 JSON 直列化可能性が原因で失敗しますが、flask.g を使用すると永続性が保証されません。
解決策:
この問題を解決するには、次のようにします。 multiprocessing.Manager を使用して、Rserve 接続の作成をユーザー要求から分離します。この外部プロセスは、各ユーザーの接続を管理します。コードは次のとおりです:
独立したマネージャー プロセス (rserve_manager.py):
import atexit from multiprocessing import Lock from multiprocessing.managers import BaseManager import pyRserve connections = {} lock = Lock() def get_connection(user_id): with lock: if user_id not in connections: connections[user_id] = pyRserve.connect() return connections[user_id] @atexit.register def close_connections(): for connection in connections.values(): connection.close() manager = BaseManager(('', 37844), b'password') manager.register('get_connection', get_connection) server = manager.get_server() server.serve_forever()
Flask アプリケーションからマネージャーへのアクセス:
from multiprocessing.managers import BaseManager from flask import g, session def get_rserve(): if not hasattr(g, 'rserve'): manager = BaseManager(('', 37844), b'password') manager.register('get_connection') manager.connect() g.rserve = manager.get_connection(session['user_id']) return g.rserve
での使用法ビュー:
result = get_rserve().eval('3 + 5')
このアプローチは、ユーザーごとに固有の接続を提供し、Flask アプリケーションでのセッション固有のデータまたはサービス接続のメンテナンスを可能にします。
以上がFlask でユーザー セッションごとに一意の Rserve 接続を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Pythonasyncioについて...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。

Python 3.6のピクルスファイルの読み込みエラー:modulenotfounderror:nomodulenamed ...

SCAPYクローラーを使用するときにパイプラインファイルを作成できない理由についての議論は、SCAPYクローラーを学習して永続的なデータストレージに使用するときに、パイプラインファイルに遭遇する可能性があります...
