2012-05-05 2 views

답변

7

다음은 Python으로 모니터 코드를 구현하는 데 필요한 최소 코드입니다.

참고 :

  1. 내가 레디 스-평에서 PubSub 클래스에서이 적응. 이 응답을 구문 분석하지 않습니다 client.py
  2. 볼 수 있지만 그것으로 충분
 
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

내 노트에서이 스크립트를 실행하면 셀이 계속 실행되며 이에 대한 해결 방법을 찾을 수 없습니다. 어떤 제안? –

관련 문제