技术研究:Redis 实现消息队列
import redis
# 连接到Redis服务器
redis_host = 'localhost'
redis_port = 6379
r = redis.StrictRedis(host=redis_host, port=redis_port, decode_responses=True)
# 将消息推送到Redis队列
def enqueue_task(queue_name, task):
r.rpush(queue_name, task)
# 从队列中取出消息并处理
def process_tasks(queue_name):
while True:
# 从队列中取出一个任务,如果队列为空,这里会阻塞
task = r.blpop(queue_name)[1]
# 处理任务的代码放在这里
print(f"Processing task: {task}")
# 模拟任务处理
# perform_task(task)
# 示例使用
queue_name = 'my_tasks'
enqueue_task(queue_name, 'task1')
enqueue_task(queue_name, 'task2')
process_tasks(queue_name)
这段代码使用了Redis的列表(list)数据结构来实现一个简单的任务队列。enqueue_task
函数用于将任务添加到队列中,而process_tasks
函数是一个无限循环,不断地从队列中取出任务并“处理”它们。这里的处理仅为打印出任务内容,实际应用中你会在这里编写处理任务的代码。
评论已关闭