Eu suponho que você esteja usando redis-py.
A documentação se refere a
listen
como uma versão mais antiga da lib... Talvez você deva usar outro método para leitura de mensagens. Por exemplo, com um retorno de chamada 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:
É possível que seu servidor redis esteja ficando sem memória quando você publicar 20.000 mensagens de uma vez. Tente aumentar a memória redis em
redis.conf
Arquivo maxmemory 500mb # or greater if needed
É um problema de memória, confira esta pergunta para obter mais informações sobre como lidar com isso.