承接 derywat/php-processes-watchdog 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-12-11