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

自定义进程类-完整示例代码

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

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

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

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

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

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

    // 进程逻辑接口方法
    public function run() {
        // 该方法必须创建,但可留空
    }

    // 业务入口执行前的前置方法
    public function front() {
        // 如果返回false,run()则不会执行,while(true)也会终止
        return true;
    }

    // 接收管道数据接口方法
    public function read($process) {
        // 必须使用read()接收投递的数据,就算你不使用该数据,否则Swoole底层会堵塞进程。
        $data = $process->read();

        // 你的业务代码...
    }

    // 业务进程发生异常时回调
    public function onException(\Throwable $throwable) 
    {
        // $throwable->getMessage(); 错误内容
        // $throwable->getFile(); 错误文件
        // $throwable->getLine(); 错误行数
    }

    // 当进程接收到 SIGTERM 信号触发该回调
    public function onSigTerm() {
        // 这里可以做一些进程释放的业务逻辑
    }
}

SW-X

企业级 - 高性能 PHP 框架

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

本篇目录