PHP Класс MyQEE\Server\Worker

Показать файл Открыть проект

Открытые свойства

Свойство Тип Описание
$id integer 当前进程的唯一ID
$name string 工作进程服务对象的name, 主端口为 Main
$serverId integer 当前进程的服务器ID
$serverName string 服务器名
$worker WorkerMain | WorkerTCP | WorkerUDP | WorkerWebSocket 在自定义对象里有次对象

Защищенные свойства (Protected)

Свойство Тип Описание
$server Swoole\Server | Swoole\Http\Server | Swoole\Websocket\Server
$startTime integer 当前进程启动时间
$time integer 当前时间

Открытые методы

Метод Описание
__construct ( Swoole\Server $server ) WorkerBase constructor.
log ( string $label, array $data = null, string $type = 'other', string $color = '[36m' ) 输出自定义log
onClose ( $server, $fd, $fromId ) 关闭连接回调
onConnect ( $server, $fd, $fromId ) 连接服务器回调
onFinish ( $server, $taskId, $data )
onPipeMessage ( Swoole\Server $server, integer $fromWorkerId, mixed $message, integer $serverId ) : mixed 接受到任意进程的调用
onStart ( ) 进程启动后执行 (空方法, 可自行扩展)
onStop ( ) 退出程序是回调
sendMessage ( $data, integer $workerId, integer $serverId, string $serverGroup = null ) : boolean 向任意 worker 进程或者 task 进程发送消息
task ( $data, integer $workerId, Closure $callback = null, integer $serverId, string $serverGroup = null ) : boolean | integer 投递任务
taskWait ( mixed $taskData, float $timeout = 0.5, integer $workerId, integer $serverId, string $serverGroup = null ) : mixed 阻塞的投递信息

Защищенные методы

Метод Описание
debug ( string | array $labelOrData, array $data = null ) 调试信息
info ( string | array $labelOrData, array $data = null ) 输出信息
timeTick ( integer $interval, string | array | Closure $callback, mixed | null $params = null ) 增加一个优化执行时间间隔的定时器
trace ( string | array $labelOrData, array $data = null ) 跟踪信息
warn ( string | array $labelOrData, array $data = null ) 错误信息

Описание методов

__construct() публичный Метод

WorkerBase constructor.
public __construct ( Swoole\Server $server )
$server Swoole\Server

debug() защищенный Метод

调试信息
protected debug ( string | array $labelOrData, array $data = null )
$labelOrData string | array
$data array

info() защищенный Метод

输出信息
protected info ( string | array $labelOrData, array $data = null )
$labelOrData string | array
$data array

log() публичный Метод

输出自定义log
public log ( string $label, array $data = null, string $type = 'other', string $color = '[36m' )
$label string
$data array
$type string
$color string

onClose() публичный Метод

关闭连接回调
public onClose ( $server, $fd, $fromId )
$server
$fd
$fromId

onConnect() публичный Метод

连接服务器回调
public onConnect ( $server, $fd, $fromId )
$server
$fd
$fromId

onFinish() публичный Метод

public onFinish ( $server, $taskId, $data )
$server
$taskId
$data

onPipeMessage() публичный Метод

接受到任意进程的调用
public onPipeMessage ( Swoole\Server $server, integer $fromWorkerId, mixed $message, integer $serverId ) : mixed
$server Swoole\Server
$fromWorkerId integer
$message mixed
$serverId integer
Результат mixed

onStart() публичный Метод

进程启动后执行 (空方法, 可自行扩展)
public onStart ( )

onStop() публичный Метод

退出程序是回调
public onStop ( )

sendMessage() публичный Метод

和 swoole 不同的是, 它支持服务器集群下向任意集群去投递数据
public sendMessage ( $data, integer $workerId, integer $serverId, string $serverGroup = null ) : boolean
$data
$workerId integer
$serverId integer
$serverGroup string
Результат boolean

task() публичный Метод

和 swoole 不同的是, 它支持服务器集群下向任意集群去投递数据
public task ( $data, integer $workerId, Closure $callback = null, integer $serverId, string $serverGroup = null ) : boolean | integer
$data
$workerId integer
$callback Closure
$serverId integer 默认 -1 则优先本地投递
$serverGroup string
Результат boolean | integer

taskWait() публичный Метод

阻塞的投递信息
public taskWait ( mixed $taskData, float $timeout = 0.5, integer $workerId, integer $serverId, string $serverGroup = null ) : mixed
$taskData mixed
$timeout float
$workerId integer
$serverId integer
$serverGroup string
Результат mixed

timeTick() защищенный Метод

如果你有一个定时器任务会在每个进程上运行, 但是又不希望所有的定时器在同一刹那执行, 那么用这个方法非常适合, 它可以根据进程数将定时器执行的时间分散开. 例如你启动了10个worker进程, 定时器是间隔10秒执行1次, 那么正常情况下, 这10个进程会在同1秒执行, 在下一个10秒又同时执行... 而通过本方法添加的定时器是这样执行的: 进程1会在 00, 10, 20, 30, 40, 50秒执行, 进程2会在 01, 11, 21, 31, 41, 51秒执行, .... 进程9会在 09, 19, 29, 39, 49, 59秒执行. 每个进程运行的间隔仍旧是10秒钟, 但是它不会和其它进程在同一时间执行
protected timeTick ( integer $interval, string | array | Closure $callback, mixed | null $params = null )
$interval integer 时间间隔, 单位: 毫秒
$callback string | array | Closure 回调函数
$params mixed | null

trace() защищенный Метод

跟踪信息
protected trace ( string | array $labelOrData, array $data = null )
$labelOrData string | array
$data array

warn() защищенный Метод

错误信息
protected warn ( string | array $labelOrData, array $data = null )
$labelOrData string | array
$data array

Описание свойств

$id публичное свойство

当前进程的唯一ID
public int $id
Результат integer

$name публичное свойство

工作进程服务对象的name, 主端口为 Main
public string $name
Результат string

$server защищенное свойство

protected Server,Swoole|Server,Swoole\Http|Server,Swoole\Websocket $server
Результат Swoole\Server | Swoole\Http\Server | Swoole\Websocket\Server

$serverId публичное свойство

当前进程的服务器ID
public int $serverId
Результат integer

$serverName публичное статическое свойство

服务器名
public static string $serverName
Результат string

$startTime защищенное статическое свойство

当前进程启动时间
protected static int $startTime
Результат integer

$time защищенное статическое свойство

当前时间
protected static int $time
Результат integer

$worker публичное свойство

在自定义对象里有次对象
public WorkerMain|WorkerTCP,MyQEE\Server|WorkerUDP,MyQEE\Server|WorkerWebSocket,MyQEE\Server $worker
Результат WorkerMain | WorkerTCP | WorkerUDP | WorkerWebSocket