This commit is contained in:
2021-08-05 16:56:42 +08:00
parent 859e2c7717
commit 6d4b352c30
2 changed files with 7 additions and 10 deletions
+4 -8
View File
@@ -3,6 +3,7 @@
namespace Server\Manager;
use Annotation\Inject;
use Kafka\Message;
use Server\Abstracts\Server;
use Server\Constant;
use Exception;
@@ -33,14 +34,9 @@ class OnPipeMessage extends Server
if (!is_object($message) || !($message instanceof PipeMessage)) {
return;
}
defer(fn() => $this->eventDispatch->dispatch(new OnAfterRequest()));
$this->runEvent(Constant::PIPE_MESSAGE,
function (\Swoole\Server $server, $src_worker_id, $message) {
call_user_func([$message, 'execute']);
}, [
$server, $src_worker_id, $message
]
);
call_user_func([$message, 'process'], $server, $src_worker_id);
$this->eventDispatch->dispatch(new OnAfterRequest());
}
+3 -2
View File
@@ -5,6 +5,7 @@ namespace Server;
use Closure;
use Exception;
use ReflectionException;
use Server\Manager\OnPipeMessage;
use Server\SInterface\CustomProcess;
use Server\SInterface\TaskExecute;
use Server\Task\OnServerTask;
@@ -77,7 +78,7 @@ class ServerManager extends Abstracts\Server
*/
public function addListener(string $type, string $host, int $port, int $mode, array $settings = [])
{
if ($this->portIsAready($port)) $this->stopServer($port);
if ($this->portIsAready($port)) $this->stopServer($port);
if (!$this->server) {
$this->createBaseServer($type, $host, $port, $mode, $settings);
} else {
@@ -99,6 +100,7 @@ class ServerManager extends Abstracts\Server
foreach ($this->sortService($configs['ports']) as $config) {
$this->startListenerHandler($context, $config);
}
$this->bindCallback($this->server, [Constant::PIPE_MESSAGE => [OnPipeMessage::class, 'onPipeMessage']]);
$this->bindCallback($this->server, $this->getSystemEvents($configs));
}
@@ -182,7 +184,6 @@ class ServerManager extends Abstracts\Server
private function getSystemEvents(array $configs): array
{
return array_intersect_key($configs['events'] ?? [], [
Constant::PIPE_MESSAGE => '',
Constant::SHUTDOWN => '',
Constant::WORKER_START => '',
Constant::WORKER_ERROR => '',