mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-07-16 13:15:35 +08:00
36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace ZM\Event\SwooleEvent;
|
|
|
|
use Swoole\Server;
|
|
use ZM\Annotation\Swoole\SwooleHandler;
|
|
use ZM\Config\ZMConfig;
|
|
use ZM\Console\Console;
|
|
use ZM\Container\WorkerContainer;
|
|
use ZM\Event\SwooleEvent;
|
|
use ZM\Framework;
|
|
use ZM\Store\LightCache;
|
|
|
|
/**
|
|
* Class OnWorkerStop
|
|
* @SwooleHandler("WorkerStop")
|
|
*/
|
|
class OnWorkerStop implements SwooleEvent
|
|
{
|
|
public function onCall(Server $server, $worker_id)
|
|
{
|
|
WorkerContainer::getInstance()->flush();
|
|
if (Console::getLevel() >= 4) {
|
|
Console::debug(sprintf('Worker container [id=%d] flushed', $worker_id));
|
|
}
|
|
|
|
if ($worker_id == (ZMConfig::get('worker_cache')['worker'] ?? 0)) {
|
|
LightCache::savePersistence();
|
|
}
|
|
Console::verbose(($server->taskworker ? 'Task' : '') . "Worker #{$worker_id} 已停止 (Worker 状态码: " . $server->getWorkerStatus($worker_id) . ')');
|
|
Framework::removeProcessState($server->taskworker ? ZM_PROCESS_TASKWORKER : ZM_PROCESS_WORKER, $worker_id);
|
|
}
|
|
}
|