加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl进程队列

发布时间:2020-12-15 23:35:20 所属栏目:大数据 来源:网络整理
导读:我有一个Perl脚本,它会分叉许多子进程.我希望有一些功能,比如xargs –max-procs = 4 –max-args = 1或make -j 4,其中Perl将保持给定数量的进程运行,直到它用完为止. 很容易说fork 4进程并等待它们全部完成,然后再另外四个,但我想保持四个或n个进程同时运行,
我有一个Perl脚本,它会分叉许多子进程.我希望有一些功能,比如xargs –max-procs = 4 –max-args = 1或make -j 4,其中Perl将保持给定数量的进程运行,直到它用完为止.

很容易说fork 4进程并等待它们全部完成,然后再另外四个,但我想保持四个或n个进程同时运行,一完成就分叉一个新进程.

在Perl中有一种简单的方法来实现这样的进程池吗?

解决方法

Forks::Super可以处理这个要求.

use Forks::Super MAX_PROC => 5,ON_BUSY => [ block | queue ];

对fork()的调用可能会阻塞,直到活动子进程数低于5,或者您可以将其他参数传递给fork调用,并且要执行的任务可以排队:

fork { sub => sub { ... task to run in subprocess ... } }

当一个子进程完成时,队列中的另一个作业将启动.

(我是这个模块的作者).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读