我目前正在做一个项目,我有很多可以并行的任务。我使用redis来存储数据,我还想使用它来处理我的作业队列。首先,我使用了redis doc中描述的pubsub模式。这里的问题是,它将每个消息发送给每个工作人员,我希望每个工作人员都有一条消息。目前,我已经通过为每条消息添加状态(在db中)来规避这个问题,但这显然不是最佳的。有没有办法用合适的模式轻松地替换这个子模式?
shstlldc1#
不确定这是用redis实现队列的最有效方法,但这绝对是一种简单的方法!
import time from redis import Redis REDIS_CLIENT = Redis() def push(*values): REDIS_CLIENT.rpush('QUEUE', *values) def pull(): while True: msg = REDIS_CLIENT.rpop('QUEUE') if msg is None: time.sleep(0.1) continue work(msg)
1条答案
按热度按时间shstlldc1#
不确定这是用redis实现队列的最有效方法,但这绝对是一种简单的方法!