我正在编写一个应用程序,将消息发布到Redis中的一个频道并进行处理。它是一个长期的应用程序,基本上从不监听频道。在def msg_handler():
r = redis.client.StrictRedis(host='localhost', port=6379, db=0)
sub = r.pubsub()
sub.subscribe(settings.REDIS_CHANNEL)
while True:
msg = sub.get_message()
if msg:
if msg['type'] == 'message':
print(msg)
def main():
for i in range(3):
t = threading.Thread(target=msg_handler, name='worker-%s' % i)
print('thread {}'.format(i))
t.setDaemon(True)
t.start()
while True:
print('Waiting')
time.sleep(1)
当我运行这个程序时,我注意到它没有得到在程序启动之前发布到频道的消息。在应用程序订阅频道之后,将消息发送到频道,效果很好。在
在生产中,很可能在程序启动之前通道中有一些消息。有没有办法得到这些旧信息?在