modify
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user