modify
This commit is contained in:
@@ -4,6 +4,7 @@ declare(strict_types=1);
|
||||
namespace HttpServer\Events;
|
||||
|
||||
|
||||
use Annotation\Loader;
|
||||
use Exception;
|
||||
use HttpServer\Abstracts\Callback;
|
||||
use Snowflake\Event;
|
||||
@@ -18,18 +19,26 @@ use Swoole\Server;
|
||||
class OnPipeMessage extends Callback
|
||||
{
|
||||
|
||||
/**
|
||||
* @param Server $server
|
||||
* @param int $src_worker_id
|
||||
* @param $message
|
||||
* @throws ComponentException
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onHandler(Server $server, int $src_worker_id, $message)
|
||||
{
|
||||
// TODO: Implement onHandler() method.
|
||||
$events = Snowflake::app()->getEvent();
|
||||
$events->trigger(Event::PIPE_MESSAGE, [$server, $src_worker_id, $message]);
|
||||
}
|
||||
/**
|
||||
* @param Server $server
|
||||
* @param int $src_worker_id
|
||||
* @param $message
|
||||
* @throws ComponentException
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onHandler(Server $server, int $src_worker_id, $message)
|
||||
{
|
||||
// TODO: Implement onHandler() method.
|
||||
if (is_array($message) && ($message[1] ?? null) instanceof Loader) {
|
||||
if ($src_worker_id > $server->setting['worker_num']) {
|
||||
$message[1]->loadByDirectory(MODEL_PATH);
|
||||
} else {
|
||||
$message[1]->loadByDirectory(APP_PATH);
|
||||
}
|
||||
} else {
|
||||
$events = Snowflake::app()->getEvent();
|
||||
$events->trigger(Event::PIPE_MESSAGE, [$server, $src_worker_id, $message]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -39,13 +39,10 @@ class OnWorkerStart extends Callback
|
||||
|
||||
name($server->worker_pid, $worker_id >= $server->setting['worker_num'] ? 'task' : 'worker');
|
||||
|
||||
$loader = Snowflake::app()->get(ServerInotify::class)->getLoader();
|
||||
var_dump($loader);
|
||||
|
||||
if ($worker_id >= $server->setting['worker_num']) {
|
||||
$this->onTask($server, $worker_id, $loader);
|
||||
$this->onTask($server, $worker_id);
|
||||
} else {
|
||||
$this->onWorker($server, $worker_id, $loader);
|
||||
$this->onWorker($server, $worker_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,14 +52,12 @@ class OnWorkerStart extends Callback
|
||||
* @param int $worker_id
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onTask(Server $server, int $worker_id, Loader $loader)
|
||||
public function onTask(Server $server, int $worker_id)
|
||||
{
|
||||
putenv('environmental=' . Snowflake::TASK);
|
||||
|
||||
Snowflake::setTaskId($server->worker_pid);
|
||||
|
||||
$loader->loadByDirectory(MODEL_PATH);
|
||||
|
||||
fire(Event::SERVER_TASK_START);
|
||||
}
|
||||
|
||||
@@ -72,13 +67,11 @@ class OnWorkerStart extends Callback
|
||||
* @param int $worker_id
|
||||
* @throws Exception
|
||||
*/
|
||||
public function onWorker(Server $server, int $worker_id, Loader $loader)
|
||||
public function onWorker(Server $server, int $worker_id)
|
||||
{
|
||||
Snowflake::setWorkerId($server->worker_pid);
|
||||
putenv('environmental=' . Snowflake::WORKER);
|
||||
|
||||
$loader->loadByDirectory(APP_PATH);
|
||||
|
||||
try {
|
||||
fire(Event::SERVER_WORKER_START, [$worker_id]);
|
||||
} catch (\Throwable $exception) {
|
||||
|
||||
@@ -50,7 +50,8 @@ class ServerInotify extends Process
|
||||
*/
|
||||
public function getLoader()
|
||||
{
|
||||
return $this->getLoader();
|
||||
$annotation = Snowflake::app()->getAnnotation();
|
||||
return $annotation->getLoader();
|
||||
}
|
||||
|
||||
|
||||
@@ -73,6 +74,16 @@ class ServerInotify extends Process
|
||||
if (!is_dir($dir)) continue;
|
||||
$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::wait();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user