mirror of
https://github.com/zhamao-robot/zhamao-framework.git
synced 2026-03-18 05:04:51 +08:00
33 lines
822 B
PHP
33 lines
822 B
PHP
<?php
|
|
|
|
/** @noinspection PhpUnusedParameterInspection */
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace ZM\Event\SwooleEvent;
|
|
|
|
use Swoole\Coroutine;
|
|
use Swoole\Server;
|
|
use Swoole\Timer;
|
|
use ZM\Annotation\Swoole\SwooleHandler;
|
|
use ZM\Event\SwooleEvent;
|
|
use ZM\Store\LightCacheInside;
|
|
|
|
/**
|
|
* Class OnWorkerExit
|
|
* @SwooleHandler("WorkerExit")
|
|
*/
|
|
class OnWorkerExit implements SwooleEvent
|
|
{
|
|
public function onCall(Server $server, $worker_id)
|
|
{
|
|
Timer::clearAll();
|
|
foreach ((LightCacheInside::get('wait_api', 'wait_api') ?? []) as $v) {
|
|
if (($v['worker_id'] ?? -1) == $worker_id && isset($v['coroutine'])) {
|
|
Coroutine::resume($v['coroutine']);
|
|
}
|
|
}
|
|
logger()->debug('正在结束 Worker #' . $worker_id . ',进程内可能有事务在运行...');
|
|
}
|
|
}
|