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