消费者Redis架构实现阻塞生产者消费者模式(redis 阻塞生产者)
阻塞生产者消费者模式是一种常见的模式,它具有生产者发布任务、消费者消费任务和消息队列存储任务的三种成分。Redis消费者架构实现阻塞生产者消费者模式的思路是,将任务定义为可阻塞的命令,生产者往Redis消息队列传递任务,消费者从队列获取任务,执行完任务则将结果存入Redis中。
下面具体介绍一下,Redis消费者架构实现阻塞生产者消费者模式的实现方式:
1. 定义阻塞生产者消费者模式的实现命令:
首先定义有关ESTABLISH,CONSUME和RESULT的命令,其格式如下:
ESTABLISH:
CONSUME:
RESULT:
2. 启动生产者:
生产者启动后,会从队列中任务并往Redis消息队列传递ESTABLISH命令。
# 生产者启动
while True: # 从队列中取出任务信息
task = dequeue() # 将ESTABLISH命令传递到Redis消息队列
rc.lpush('ESTABLISH', json.dumps({'task_id': task.task_id, 'data': task.data}))
3. 启动消费者:
消费者启动后,它会向Redis消息队列发送CONSUME命令,用于获取任务,取出的任务就是队列中的任务;当然,如果不加任务的话,CONSUME会一直发送,直到发现任务