modify
This commit is contained in:
@@ -40,7 +40,6 @@ class OnWorkerStart extends Callback
|
||||
*/
|
||||
public function onHandler(Server $server, int $worker_id): void
|
||||
{
|
||||
Coroutine::set(['enable_deadlock_check' => false]);
|
||||
putenv('workerId=' . $worker_id);
|
||||
|
||||
$get_name = $this->get_process_name($server, $worker_id);
|
||||
@@ -48,7 +47,7 @@ class OnWorkerStart extends Callback
|
||||
swoole_set_process_name($get_name);
|
||||
}
|
||||
|
||||
$this->onSignal($server, $worker_id);
|
||||
// $this->onSignal($server, $worker_id);
|
||||
if ($worker_id >= $server->setting['worker_num']) {
|
||||
fire(Event::SERVER_TASK_START);
|
||||
|
||||
@@ -65,18 +64,18 @@ class OnWorkerStart extends Callback
|
||||
* @param $server
|
||||
* @param $worker_id
|
||||
*/
|
||||
public function onSignal($server, $worker_id)
|
||||
{
|
||||
$this->debug(sprintf(workerName($worker_id) . ' #%d is start.....', $worker_id));
|
||||
// public function onSignal($server, $worker_id)
|
||||
// {
|
||||
// $this->debug(sprintf(workerName($worker_id) . ' #%d is start.....', $worker_id));
|
||||
// Coroutine\go(function (Server $server, $worker_id) {
|
||||
Coroutine::waitSignal($this->signal);
|
||||
while (Co::stats()['coroutine_num'] > 0) {
|
||||
var_dump(Co::stats()['coroutine_num']);
|
||||
sleep(1);
|
||||
}
|
||||
return $server->stop($worker_id, true);
|
||||
// Coroutine::waitSignal($this->signal);
|
||||
// while (Co::stats()['coroutine_num'] > 0) {
|
||||
// var_dump(Co::stats()['coroutine_num']);
|
||||
// Coroutine::sleep(1);
|
||||
// }
|
||||
// return $server->stop($worker_id, true);
|
||||
// }, $server, $worker_id);
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
|
||||
+18
-10
@@ -24,8 +24,10 @@ use Snowflake\Exception\NotFindClassException;
|
||||
use Snowflake\Process\Biomonitoring;
|
||||
use Snowflake\Process\ServerInotify;
|
||||
use Snowflake\Snowflake;
|
||||
use Swoole\Coroutine;
|
||||
use Swoole\Process;
|
||||
use Swoole\Runtime;
|
||||
use co;
|
||||
|
||||
/**
|
||||
* Class Server
|
||||
@@ -194,6 +196,16 @@ class Server extends HttpService
|
||||
$this->stop($this);
|
||||
}
|
||||
|
||||
private int $_types = SWOOLE_HOOK_TCP |
|
||||
SWOOLE_HOOK_UNIX |
|
||||
SWOOLE_HOOK_UDP |
|
||||
SWOOLE_HOOK_UDG |
|
||||
SWOOLE_HOOK_SSL |
|
||||
SWOOLE_HOOK_TLS |
|
||||
SWOOLE_HOOK_SLEEP |
|
||||
SWOOLE_HOOK_STREAM_FUNCTION |
|
||||
SWOOLE_HOOK_PROC;
|
||||
|
||||
|
||||
/**
|
||||
* @param bool $isEnable
|
||||
@@ -203,16 +215,12 @@ class Server extends HttpService
|
||||
if (!$isEnable) {
|
||||
return;
|
||||
}
|
||||
Runtime::enableCoroutine(true, SWOOLE_HOOK_TCP |
|
||||
SWOOLE_HOOK_UNIX |
|
||||
SWOOLE_HOOK_UDP |
|
||||
SWOOLE_HOOK_UDG |
|
||||
SWOOLE_HOOK_SSL |
|
||||
SWOOLE_HOOK_TLS |
|
||||
SWOOLE_HOOK_SLEEP |
|
||||
SWOOLE_HOOK_STREAM_FUNCTION |
|
||||
SWOOLE_HOOK_PROC
|
||||
);
|
||||
Runtime::enableCoroutine(true, $this->_types);
|
||||
$container['enable_deadlock_check'] = false;
|
||||
$container['exit_condition'] = function () {
|
||||
return Co::stats()['coroutine_num'] === 0;
|
||||
};
|
||||
Coroutine::set($container);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user