2012-05-05 3 views

答えて

7

ここに、Pythonでモニターコードを実装するための最小限のコードを示します。

注:

  1. 私はRedisの-PYのPubSubクラスからこれを適応しました。非常に素晴らしいclient.py
  2. これは、応答を解析しませんが、それは
  3. 十分に単純でなければなりませんが、
 
import redis   

class Monitor(): 
    def __init__(self, connection_pool): 
     self.connection_pool = connection_pool 
     self.connection = None 

    def __del__(self): 
     try: 
      self.reset() 
     except: 
      pass 

    def reset(self): 
     if self.connection: 
      self.connection_pool.release(self.connection) 
      self.connection = None 

    def monitor(self): 
     if self.connection is None: 
      self.connection = self.connection_pool.get_connection(
       'monitor', None) 
     self.connection.send_command("monitor") 
     return self.listen() 

    def parse_response(self): 
     return self.connection.read_response() 

    def listen(self): 
     while True: 
      yield self.parse_response() 

if __name__ == '__main__': 
    pool = redis.ConnectionPool(host='localhost', port=6379, db=0) 
    monitor = Monitor(pool) 
    commands = monitor.monitor() 

    for c in commands : 
     print(c) 


+0

エラー処理の任意の並べ替えを行いませんを参照してください。素晴らしい作品!どうもありがとうございます。 – PIntag

+0

ノートブックでこのスクリプトを実行すると、セルが実行され続けているため、回避策を見つけることができません。助言がありますか? –

関連する問題