数据库 - Model 前置说明
官方开源项目 抓取代理IP

创建一个自定义进程

框架不强制在任意位置创建自定义进程类,但建议统一存放在/box/process目录下便于管理。

所有自定义进程类,必须继承\design\AbstractProcess基础类,并实现public function run()接口方法,方法内实现您的逻辑代码,我们通过代码来举例:

<?php
namespace box\process;
use design\AbstractProcess;

class Demo extends AbstractProcess
{
    public function run() {
        // 您的业务代码....
    }
}

这样即完成了一个自定义进程类,但该自定义进程类尚未被注册到 Swoole-Server 服务中,我们可以通过 配置文件 申明来完成注册工作。

只需在/config/process.php 内加上您的自定义进程类即可:

<?php
return [
    \box\process\Demo::class,
];

其他参数支持

自定义进程存在一些可设置的参数,均可以通过 在子类上重写参数对应的属性 来进行重新定义。

以下,是\design\AbstractProcess基础类的一些默认参数。

<?php
abstract class AbstractProcess
{
    /**
     * 进程名称
     */
    public $name = 'diy-process';
    
    /**
     * 是否需要while(true) 永久堵塞
    */
    public $onWhile = false;

    /**
     * 等待间隔时间(毫秒)  0不堵塞
    */
    public $sleepS = 0;

    /**
     * 重定向自定义进程的标准输入和输出
     */
    public $redirectStdinStdout = false;

    /**
     * 管道类型
     */
    public $pipeType = 2;

    /**
     * 是否启用协程
     */
    public $enableCoroutine = true;
}

$redirectStdinStdout$pipeType$enableCoroutine3个参数的意义,可以参考Swoole官方文档:Swoole\Process

SW-X

企业级 - 高性能 PHP 框架

最后更新:3年前 . 作者-小黄牛

本篇目录