我正在使用PyRSMQ发送和接收消息。假设我有一个队列名"test“,我正在从发送方推送一条消息为"_batch1”和"_batch2“,而在消费者中,我需要订阅"test”队列,并只读取彭定康为"*_batch1“的消息。我如何使用Redis过滤队列中的消息,或者有什么解决办法?
发布于 2021-03-23 14:47:00
您可以使用worker类来处理消息。如果工作人员处理函数返回True,则消息将从队列中删除,如果没有,则保留在队列中供其他工作人员拾取。
例如:
def process(message_id, message, rc, ts):
# process message here
m_json = json.loads(message)
if m_message["job1"]:
# do something with message if job1
# if return True the message will be deleted from queue
return True
else:
# if return false message will be visible again in queue and wont be delted
return False
# create worker for the queue and run it somewhere in your code, like in main()
rsqm_consumer = RedisSMQConsumer(qname=args.queue,
processor=process,
host=args.host, port=args.port, ns=args.ns, vt=args.vt,
empty_queue_delay=args.empty_queue_delay, trace=args.trace)https://stackoverflow.com/questions/64464082
复制相似问题