PHP多进程PCNTL

先看文件test.php的代码:

<?php
/**
 * /usr/bin/php artisan crawlChapter --page=1
 * User: kendo
 * Date: 2019/3/26
 */

for ($page = 1; $page <= 178; $page++) {
    $pid = pcntl_fork();
    if ($pid == -1) {
        die('fork child process failure');
    } elseif ($pid) {
        pcntl_wait($status, WNOHANG);
    } else {
        pcntl_exec('/usr/bin/php', [
            'artisan',
            'crawlChapter',
            '--page=' . $page
        ]);
    }
}

执行test.php

shell> /usr/local/php7.3.2/bin/php test.php

这里用到了两个PHP版本,我的默认PHP版本并没有安装PCNTL,所以临时编译了了一个7.3.2的版本,在编译的时候,配置参数时,加上 –enable-pcntl

PCNTL扩展
Tips:
非Unix类系统不支持此模块

Leave Comment

电子邮件地址不会被公开。 必填项已用*标注