This commit is contained in:
as2252258@163.com
2021-04-07 02:38:29 +08:00
parent 7672f9c9b2
commit 074d6a05cb
3 changed files with 13 additions and 18 deletions
+3 -5
View File
@@ -28,13 +28,11 @@ class OnPipeMessage extends Callback
*/ */
public function onHandler(Server $server, int $src_worker_id, $message) public function onHandler(Server $server, int $src_worker_id, $message)
{ {
// TODO: Implement onHandler() method. if ($message instanceof Loader) {
var_dump($message);
if (is_array($message) && ($message[1] ?? null) instanceof Loader) {
if ($src_worker_id > $server->setting['worker_num']) { if ($src_worker_id > $server->setting['worker_num']) {
$message[1]->loadByDirectory(MODEL_PATH); $message->loadByDirectory(MODEL_PATH);
} else { } else {
$message[1]->loadByDirectory(APP_PATH); $message->loadByDirectory(APP_PATH);
} }
} else { } else {
$events = Snowflake::app()->getEvent(); $events = Snowflake::app()->getEvent();
+4
View File
@@ -39,6 +39,10 @@ class OnWorkerStart extends Callback
name($server->worker_pid, $worker_id >= $server->setting['worker_num'] ? 'task' : 'worker'); name($server->worker_pid, $worker_id >= $server->setting['worker_num'] ? 'task' : 'worker');
/** @var ServerInotify $inotify */
$inotify = Snowflake::app()->get(ServerInotify::class);
$inotify->getLoader($worker_id);
if ($worker_id >= $server->setting['worker_num']) { if ($worker_id >= $server->setting['worker_num']) {
$this->onTask($server, $worker_id); $this->onTask($server, $worker_id);
} else { } else {
+6 -13
View File
@@ -46,12 +46,15 @@ class ServerInotify extends Process
/** /**
* @return mixed * @param $workerId
* @throws Exception
*/ */
public function getLoader() public function getLoader($workerId)
{ {
$annotation = Snowflake::app()->getAnnotation(); $annotation = Snowflake::app()->getAnnotation();
return $annotation->getLoader();
$server = Snowflake::app()->getSwoole();
$server->sendMessage($annotation->getLoader(), $workerId);
} }
@@ -74,16 +77,6 @@ class ServerInotify extends Process
if (!is_dir($dir)) continue; if (!is_dir($dir)) continue;
$this->watch($dir); $this->watch($dir);
} }
$worker = Snowflake::app()->getSwoole();
$workerNum = $worker->setting['worker_num'];
$task_worker_num = $worker->setting['task_worker_num'] ?? 0;
for ($i = 0; $i < $workerNum + $task_worker_num; $i++) {
$worker->sendMessage(['reload', $this->getLoader()], $i);
}
Event::add($this->inotify, [$this, 'check']); Event::add($this->inotify, [$this, 'check']);
Event::wait(); Event::wait();
} else { } else {