2013-07-30 1 views
0

WHAT 4 명의 고객을 사용하여 NSQ 서버에서 메시지를 소비합니다. 이 문제가 발생할 때 backing off 로그가 내 고객으로 느려지는 이유를 디버깅하려고합니다.pynsq : 'n'초 후퇴

예외를 로깅하고 있는데 메시지를 다시 채우려면 False을 반환해야합니다. 로그 된 예외는 보이지 않지만 계속이 메시지가 표시됩니다. 도움!! 문제가 대문자로한다 당신의 아주 마지막 줄 True처럼


2013-07-30 14:41:10,304 INFO [ip-10-114-195-89:4150:nsq_msg_handler] backing off for 3.58 seconds 
2013-07-30 14:41:10,304 DEBUG took 0.000000 seconds for json_data _id: 52d730669c615b67 

2013-07-30 14:46:44,414 INFO [ip-10-114-195-89:4150:nsq_msg_handler] backing off for 3.58 seconds 
2013-07-30 14:46:44,414 DEBUG took 0.000000 seconds for json_data _id: 7e9c5fe5ba168496 

CODE



    def connect_nsq(self): 
     r = nsq.Reader(message_handler=self.nsq_msg_handler, lookupd_http_addresses=["127.0.0.1:4161"], topic="test_topic", channel="test_channel", max_in_flight=500) 

     nsq.run() 


    # callback 
    def nsq_msg_handler(self, message): 
     try: 
      before_ts = get_utc_now_ts() 
      json_data = json.loads(message.body) 

      my_data = json_data["key1"] 
      my_data = json_data["key2"] 
      my_data = json_data["key3"] 

      after_ts = get_utc_now_ts() 
      delta = after_ts - before_ts 
      logger.debug("took %f seconds for json_data _id: %s" % (delta, json_data["_id"])) 
     except Exception as reason: 
      print reason, traceback.format_exc() 
      return False 

     return true 

답변

1

보인다. 예외가 귀하의 try 블록 외부에서 발생하기 때문에 귀하의 역 추적이 인쇄되지 않는 이유가 있습니다.