This commit is contained in:
2021-03-02 12:03:43 +08:00
parent caf9a207e4
commit 56d4d5dcb7
+11 -8
View File
@@ -12,6 +12,7 @@ use Snowflake\Exception\ComponentException;
use Snowflake\Exception\ConfigException; use Snowflake\Exception\ConfigException;
use Snowflake\Snowflake; use Snowflake\Snowflake;
use Swoole\Coroutine; use Swoole\Coroutine;
use Swoole\Runtime;
use Swoole\Server; use Swoole\Server;
use co; use co;
use Swoole\Timer; use Swoole\Timer;
@@ -89,28 +90,30 @@ class OnWorkerStart extends Callback
* @param $worker_id * @param $worker_id
* @return void * @return void
*/ */
public function onSignal(Server $server, $worker_id): void public function onSignal(Server $server, $worker_id): mixed
{ {
$ret = Coroutine::waitSignal($this->signal, -1); $ret = Coroutine::waitSignal($this->signal, -1);
Runtime::enableCoroutine(false);
if ($ret === true) { if ($ret === true) {
$this->ticker($server); $this->ticker();
} else {
$server->stop();
} }
return $server->stop();
} }
/** /**
* @param Server $server
* @return void * @return void
*/ */
private function ticker(Server $server): void private function ticker(): void
{ {
if (!Snowflake::app()->isRun()) { if (!Snowflake::app()->isRun()) {
$server->stop();
return; return;
} }
Timer::after(1000, [$this, 'ticker'], $server);
sleep(1);
$this->ticker();
} }