0

具体的には、カスタム Redis モジュールを作成しました。MyRedis

MyRedis.py

import redis
r = redis.StrictRedis(host='localhost', port=6379, db=0)

def get_func(k):
    """ A custom get function """
    return r.get(k)

# ...
# more functions ...
# ...

モジュールのロード時に接続が確立されることに注意してください。
私の質問は次のとおりです。これはモジュールを記述する正しい方法ですか、それとも次のように各関数内に接続確立行
を含める必要があります。r = redis.StrictRedis(...)

def get_func(k):
    """ A custom get function """
    r = redis.StrictRedis(host='localhost', port=6379, db=0)
    return r.get(k)

Web アプリでは、「通常の」バックエンド アプリのように、モジュールは 1 回だけ読み込まれますか? それとも、接続ごとに 1 回ロードされますか?
1 回だけロードされた場合、これは Redis サーバーが何らかの理由でクラッシュした場合、再起動すると接続がないことを意味します。これは、2 番目のスニペットが正しいものであることを示唆しています。
では、Python モジュールは Web アプリでどのように動作するのでしょうか?

4

1 に答える 1

0

ただし、SAPI は動作します。CGI の場合は、リクエストごとにロードされます。mod_wsgi の場合、プロセスごとに 1 回読み込まれます。その他については、ドキュメントを参照してください。

于 2012-10-17T20:16:22.127 に答える