derywat/php-processes-watchdog
最新稳定版本:0.1.0
Composer 安装命令:
composer require derywat/php-processes-watchdog
包简介
Process manager and watchdog for derywat/php-processes.
README 文档
README
Provides methods for managing processes collection.
Starting processes
Process starts by calling addProcess method on watchdog instance (singleton).
Multiple processes can be started anytime instance exists.
Process will be restarted automatically if in case of exit without using removeProcess method.
use derywat\processesWatchdog\ProcessesWatchdog; $processes = ProcessesWatchdog::getInstance(); $restartWaitSeconds = 30; $processes->addProcess( 'uniqueProcessNameOrId', function($socket){ //child process code }, $restartWaitSeconds );
Handling interprocess messaging
By default process end messages are filtered out in processMessages methods result. To include process end messages call processMessages() with parameter equal true.
use derywat\processesWatchdog\ProcessesWatchdog; $processes = ProcessesWatchdog::getInstance(); $messages = $processes->processMessages(); if(!empty($messages)){ //handle messages here }
Ending processes
Process is scheduled for ending and termination signal is send to process by calling removeProcess method. Process finished message is sent on process end.
use derywat\processesWatchdog\ProcessesWatchdog; $processes = ProcessesWatchdog::getInstance(); $processes->removeProcess('uniqueProcessNameOrId');
Ending all managed processes and waiting for finish
use derywat\processesWatchdog\ProcessesWatchdog; $processes = ProcessesWatchdog::getInstance(); $processes->removeAllProcesses(); while(!$processes->allProcessesEnded()){ $processes->processAndHandleMessages($messagesHandler); usleep(100000); }
Watchdog events
Watchdog sends events on start, stop, scheduled restart and restart of process. Event object is of class ProcessesWatchdogEvent.
use derywat\processesWatchdog\ProcessesWatchdog; $processes = ProcessesWatchdog::getInstance(); $processes->registerEventReceiver((new EventsReceiver())->addEventHandlerClosure( function(ProcessesWatchdogEvent $event) use ($logger) { $message = $event->getMessage(); $actionId = $event->getAction(); $actionName = $event->getgetActionName(); //watchdog event handling code } ));
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-11