Python分布式任务处理

Python分布式进程

996.icu
面对多任务需求的时候,thread和process都能实现相应的功能。但更推荐使用process,因为process更稳定。并且process可以在多台机器上实现分布式的应用,而多线程thread只能在一台机器上使用多个CPU。

那在Python中我们该如何使用分布式进程完成我们的需求?

Python提供了multiprocessing模块。该模块不仅提供实现多进程process,其中子模块manager还支持将多进程分布到多台机器上

一台机器充当任务的调度者(master进程),将任务分发到不同的进程中,通过网络通信将任务分发到不同的机器上。这里我们不需要知道manager模块如何将任务进行分发,只需要知道他的用法。

现在我们需要实现一个“不断输入数字,计算得出输入数字的平方”。

如果我们不使用分布式进程,只使用单机多进程。该如何完成?

单机多进程实现

1.初始化一个队列
2.产生数字的进程(master),并将产生的数字put到全局的队列中
3.进行平方根计算的进程(worker),将计算完成的数据输出

单机多进程实现

分布式多进程实现

当我们使用分布式多进程的时候,一个队列就不能满足我们的需求,需要两个队列:masterQueueworkerQueue。我们来看一下使用分布式多进程如何完成上述需求。

1.创建master(主机)任务注册、分发进程

首先我们需要创建一个DistributedMasterProcess.py

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值