modify
This commit is contained in:
@@ -13,9 +13,22 @@ use Swoole\Coroutine;
|
||||
use Swoole\Process;
|
||||
use Swoole\Server;
|
||||
|
||||
|
||||
/**
|
||||
* Class OnManagerStart
|
||||
* @package HttpServer\Events
|
||||
*/
|
||||
class OnManagerStart extends Callback
|
||||
{
|
||||
|
||||
|
||||
/** @var int|string 重启信号 */
|
||||
private int $signal = SIGUSR1 | SIGUSR2;
|
||||
|
||||
/** @var bool 是否打印 */
|
||||
private bool $isPrint = false;
|
||||
|
||||
|
||||
/**
|
||||
* @param Server $server
|
||||
* @throws Exception
|
||||
@@ -31,6 +44,29 @@ class OnManagerStart extends Callback
|
||||
return;
|
||||
}
|
||||
name(Config::get('id', false, 'system') . ' Server Manager.');
|
||||
|
||||
Coroutine\go([$this, 'onSignal'], $server);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $server
|
||||
* @param $worker_id
|
||||
*/
|
||||
public function onSignal($server)
|
||||
{
|
||||
$receive = Coroutine::waitSignal($this->signal, 30);
|
||||
while ($receive === true) {
|
||||
if ($this->isPrint === false) {
|
||||
$this->warning(sprintf('Receive Worker stop event.'));
|
||||
$this->isPrint = true;
|
||||
}
|
||||
if (!Snowflake::app()->isRun()) {
|
||||
break;
|
||||
}
|
||||
sleep(1);
|
||||
}
|
||||
return $server->stop();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,13 +22,6 @@ use Swoole\Server;
|
||||
class OnWorkerStart extends Callback
|
||||
{
|
||||
|
||||
/** @var int|string 重启信号 */
|
||||
private int $signal = SIGUSR1 | SIGUSR2;
|
||||
|
||||
|
||||
/** @var bool 是否打印 */
|
||||
private bool $isPrint = false;
|
||||
|
||||
/**
|
||||
* @param Server $server
|
||||
* @param int $worker_id
|
||||
@@ -51,7 +44,6 @@ class OnWorkerStart extends Callback
|
||||
$this->onWorker($server, $worker_id);
|
||||
}
|
||||
|
||||
Coroutine\go([$this, 'onSignal'], $server, $worker_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -92,30 +84,6 @@ class OnWorkerStart extends Callback
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $server
|
||||
* @param $worker_id
|
||||
*/
|
||||
public function onSignal($server, $worker_id)
|
||||
{
|
||||
|
||||
// $env = ucfirst(Snowflake::getEnvironmental());
|
||||
//
|
||||
// $receive = Coroutine::waitSignal($this->signal, 30);
|
||||
// while ($receive === true) {
|
||||
// if ($this->isPrint === false) {
|
||||
// $this->warning(sprintf('Receive %s#%d stop event.', $env, $worker_id));
|
||||
// $this->isPrint = true;
|
||||
// }
|
||||
// if (!Snowflake::app()->isRun()) {
|
||||
// break;
|
||||
// }
|
||||
// sleep(1);
|
||||
// }
|
||||
// return $server->stop($worker_id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $socket
|
||||
* @param $worker_id
|
||||
|
||||
Reference in New Issue
Block a user