Supongo que estás usando redis-py.
La documentación se refiere a listen
como versión anterior de lib... Tal vez debería usar otro método para leer mensajes. Por ejemplo, con una devolución de llamada
p = r.pubsub()
def my_handler(message):
print 'MY HANDLER: ', message['data']
if item['type'] == 'message':
num += 1
a.parser(item['data'])
print num
p.subscribe('bdwaf', my_handler)
# read the subscribe confirmation message
p.get_message()
Editar:
Es posible que su servidor redis se esté quedando sin memoria cuando publica 20000 mensajes a la vez. Intente aumentar la memoria redis en redis.conf
archivo
maxmemory 500mb # or greater if needed
Es un problema de memoria, consulte esta pregunta para obtener más información sobre cómo manejarlo.