Автор оригинала: David Wong.
В обычной разработке с катушкой мы часто сталкиваемся с этой проблемой. После изменения кода вручную прервите службу с помощью Ctrl + C, а затем перезапустите службу с помощью команды. Часто перезапускайте, я чувствую себя очень усталым.
PHP предоставляет расширение inotify, вызывая системный вызов Linux inotify для отслеживания изменения файлов
В это время возникла идея. Я запустил основной процесс для отслеживания изменений файлов, а затем открыл подпроцесс для запуска службы катушек. После того как основной процесс прослушает изменение файла, он завершает подпроцесс, а затем запускает другой подпроцесс для запуска службы катушек. Если подпроцесс хочет выйти корректно, установите сигнальный процессор и выполните некоторые операции перед выходом.
addSignal(SIGTERM, function() use ($loop) {
$loop->stop();
});
$server = new Server(function (ServerRequestInterface $request) {
return new Response(
200,
array(
'Content-Type' => 'text/plain'
),
"Hello World1!\n"
);
});
$socket = new \React\Socket\Server(8080, $loop);
$server->listen($socket);
$loop->run();
**/
//High performance HTTP server
$http = new \Swoole\Http\Server("127.0.0.1", 9501);
$http->on("start", function ($server) {
echo "Swoole http server is started at http://127.0.0.1:9501\n";
});
$http->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello World1\n");
});
$http->start();
}
}Я думаю, что самый элегантный способ добиться этого-использовать goto.
Эта статья о PHP, использующем goto для реализации автоматического перезапуска сервисов spool, reactphp и workerman, представлена здесь. Для получения дополнительной информации об автоматическом перезапуске PHP служб диспетчера очереди, reactphp и workerman, пожалуйста, найдите предыдущие статьи разработчика или продолжайте просматривать следующие связанные статьи. Я надеюсь, что вы сможете больше поддерживать разработчика в будущем!
Оригинал: “https://developpaper.com/php-uses-goto-to-automatically-restart-the-code-of-spoole-react-php-and-worker-man-services/”