2012-04-12 18 views
5

私はそれはすべてが素晴らしい作品私のアプリケーションセロリのタスク内で私のredis接続をどのように処理する必要がありますか?

class IncrementStatsCounterTask(Task): 
    def run(self, count, shortcode, stat_type, operator_id, date, **kwargs): 
     r_server = redis.Redis(settings.REDIS_HOST) 
     key = key_mask % { 
      'shortcode': shortcode, 
      'stat_type': stat_type, 
      'operator_id': operator_id, 
      'date': date.strftime('%Y%m%d') 
     } 

     return key, r_server.incr(key, count) 

ためのいくつかのカウンタを扱うセロリサーバーを持っているが、しかし、これが開き、Redisの接続をクローズするたびに、私の仕事、実行されます。接続を処理するより良い方法はありますか?おそらく何らかの永続的な接続があるでしょうか?

私はあなたの接続プールを使用することができますpython redis libraryでは、最新のジャンゴ - セロリ

答えて

1

を実行していますよ。あなたのモジュールの1つにグローバルにプールを作成し、新しい接続ごとにプールを使用するだけです。

+1

このオブジェクトは私のセロリの労働者に共有されますか? – armonge

+1

そうは思わない。しかし、それはワーカーのすべてのタスクで共有されます。 – ilvar

関連する問題