改名
This commit is contained in:
+24
-20
@@ -117,16 +117,7 @@ class ServerManager
|
|||||||
*/
|
*/
|
||||||
public function addProcess(string|CustomProcess $customProcess, $redirect_stdin_and_stdout = null, ?int $pipe_type = SOCK_DGRAM, bool $enable_coroutine = true)
|
public function addProcess(string|CustomProcess $customProcess, $redirect_stdin_and_stdout = null, ?int $pipe_type = SOCK_DGRAM, bool $enable_coroutine = true)
|
||||||
{
|
{
|
||||||
$customProcess = $this->resolveProcess($customProcess);
|
$process = $this->initProcess($customProcess, $redirect_stdin_and_stdout, $pipe_type, $enable_coroutine);
|
||||||
$process = new Process(function (Process $soloProcess) use ($customProcess) {
|
|
||||||
$system = sprintf('%s.process[%d]', Config::get('id', 'system-service'), $soloProcess->pid);
|
|
||||||
if (Kiri::getPlatform()->isLinux()) {
|
|
||||||
$soloProcess->name($system . '.' . $customProcess->getProcessName($soloProcess) . ' start.');
|
|
||||||
}
|
|
||||||
$customProcess->signListen($soloProcess);
|
|
||||||
echo sprintf("\033[36m[" . date('Y-m-d H:i:s') . "]\033[0m Process %s start.", $customProcess->getProcessName($soloProcess)) . PHP_EOL;
|
|
||||||
$customProcess->onHandler($soloProcess);
|
|
||||||
}, $redirect_stdin_and_stdout, $pipe_type, $enable_coroutine);
|
|
||||||
$this->server->addProcess($process);
|
$this->server->addProcess($process);
|
||||||
Kiri::app()->addProcess($customProcess::class, $process);
|
Kiri::app()->addProcess($customProcess::class, $process);
|
||||||
}
|
}
|
||||||
@@ -134,18 +125,31 @@ class ServerManager
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $customProcess
|
* @param $customProcess
|
||||||
* @return mixed
|
* @param $redirect_stdin_and_stdout
|
||||||
|
* @param $pipe_type
|
||||||
|
* @param $enable_coroutine
|
||||||
|
* @return Process
|
||||||
*/
|
*/
|
||||||
private function resolveProcess($customProcess): CustomProcess
|
private function initProcess($customProcess, $redirect_stdin_and_stdout, $pipe_type, $enable_coroutine): Process
|
||||||
{
|
{
|
||||||
if (is_string($customProcess)) {
|
$server = $this->server;
|
||||||
$implements = class_implements($customProcess);
|
return new Process(
|
||||||
if (!in_array(CustomProcess::class, $implements)) {
|
function (Process $soloProcess) use ($customProcess, $server) {
|
||||||
trigger_error('custom process must implement ' . CustomProcess::class);
|
if (is_string($customProcess)) {
|
||||||
}
|
$customProcess = Kiri::createObject($customProcess, [$server]);
|
||||||
$customProcess = new $customProcess($this->server);
|
}
|
||||||
}
|
$system = sprintf('%s.process[%d]', Config::get('id', 'system-service'), $soloProcess->pid);
|
||||||
return $customProcess;
|
if (Kiri::getPlatform()->isLinux()) {
|
||||||
|
$soloProcess->name($system . '.' . $customProcess->getProcessName($soloProcess) . ' start.');
|
||||||
|
}
|
||||||
|
$customProcess->signListen($soloProcess);
|
||||||
|
echo sprintf("\033[36m[" . date('Y-m-d H:i:s') . "]\033[0m Process %s start.", $customProcess->getProcessName($soloProcess)) . PHP_EOL;
|
||||||
|
$customProcess->onHandler($soloProcess);
|
||||||
|
},
|
||||||
|
$redirect_stdin_and_stdout,
|
||||||
|
$pipe_type,
|
||||||
|
$enable_coroutine
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user