欢迎光临散文网 会员登陆 & 注册

python多进程负载均衡

2023-05-09 08:44 作者:机器朗读  | 我要投稿

下面是一个简单的 Python 多进程负载均衡的例子,使用了 multiprocessingqueue 模块:


import multiprocessing
import random
import time

# 需要执行的任务函数
def task(queue, worker_id):
    while True:
        item = queue.get()
        if item is None:
            print(f"Worker {worker_id} exiting")
            break
        print(f"Worker {worker_id} processing item {item}")
        time.sleep(random.uniform(0.5, 1.5))

if __name__ == '__main__':
    # 任务队列
    task_queue = multiprocessing.Queue()

    # 添加一些任务到队列
    for i in range(20):
        task_queue.put(i)

    # 创建多个进程执行任务
    num_workers = multiprocessing.cpu_count()
    workers = []
    for i in range(num_workers):
        worker = multiprocessing.Process(target=task, args=(task_queue, i))
        worker.start()
        workers.append(worker)

    # 等待所有进程执行完毕
    for worker in workers:
        worker.join()

    print("All tasks completed")

这个例子中,我们首先定义了一个任务函数 task,它从任务队列中获取任务并执行。然后,在 if __name__ == '__main__' 的条件下,我们创建了一个 multiprocessing.Queue 对象,将一些任务添加到队列中,并创建了多个进程,每个进程都执行 task 函数。最后,我们等待所有进程执行完毕,并输出一个完成的消息。

在这个例子中,所有的进程都从同一个任务队列中获取任务,这就实现了简单的负载均衡。当一个进程完成一个任务后,它会自动从队列中获取下一个任务,直到所有任务都完成为止。


python多进程负载均衡的评论 (共 条)

分享到微博请遵守国家法律