
SwooleServer::shutdown() 메소드는 서버를 종료하는 데 사용됩니다. 이 메소드는 비동기적으로 동작하지 않습니다. 서버가 종료되기까지 1-2초 정도의 시간이 소요됩니다.
이 메소드는 서버가 종료되기 전에 처리해야 할 작업을 수행할 수 있습니다. 예를 들어, 서버가 종료되기 전에 데이터를 저장하거나 로그를 기록하는 방법은 SwooleServer::shutdown() 메소드 내부에서 사용할 수 있는 callback 함수를 통해 수행할 수 있습니다.
서버가 종료되기 전에 처리해야 할 작업을 수행하는 예제 코드는 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
// 서버 종료되기 전에 처리해야 할 작업을 수행합니다.
echo "서버 종료되기 전에 처리해야 할 작업을 수행합니다.n";
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->start();
이 메소드는 서버가 종료되기 전에 발생하는 오류를 처리할 수 있습니다. 예를 들어, 서버가 종료되기 전에 데이터를 삭제하거나 로그를 삭제하는 방법은 try-catch 문을 사용하여 오류를 처리할 수 있습니다.
서버가 종료되기 전에 데이터를 삭제하거나 로그를 삭제하는 예제 코드는 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
try {
// 서버 종료되기 전에 데이터를 삭제하거나 로그를 삭제합니다.
echo "서버 종료되기 전에 데이터를 삭제하거나 로그를 삭제합니다.n";
} catch (Exception $e) {
// 오류를 처리합니다.
echo "오류가 발생했습니다: " . $e->getMessage() . "n";
}
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->start();
SwooleServer::shutdown() 메소드를 사용하여 서버를 종료하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
// 서버 종료되기 전에 처리해야 할 작업을 수행합니다.
echo "서버 종료되기 전에 처리해야 할 작업을 수행합니다.n";
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->shutdown();
서버가 종료되기 전에 처리해야 할 작업을 수행하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
// 서버 종료되기 전에 처리해야 할 작업을 수행합니다.
echo "서버 종료되기 전에 처리해야 할 작업을 수행합니다.n";
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->shutdown();
이 메소드는 서버가 종료되기 전에 발생하는 오류를 처리하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
try {
// 서버 종료되기 전에 처리해야 할 작업을 수행합니다.
echo "서버 종료되기 전에 처리해야 할 작업을 수행합니다.n";
} catch (Exception $e) {
// 오류를 처리합니다.
echo "오류가 발생했습니다: " . $e->getMessage() . "n";
}
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->shutdown();
서버가 종료되기 전에 데이터를 삭제하거나 로그를 삭제하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$serv = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);
$serv->on('shutdown', function ($serv) {
try {
// 서버 종료되기 전에 데이터를 삭제하거나 로그를 삭제합니다.
echo "서버 종료되기 전에 데이터를 삭제하거나 로그를 삭제합니다.n";
} catch (Exception $e) {
// 오류를 처리합니다.
echo "오류가 발생했습니다: " . $e->getMessage() . "n";
}
});
$serv->on('start', function ($serv) {
// 서버가 시작되었습니다.
});
$serv->on('workerStart', function ($serv, $worker_id) {
// 워커가 시작되었습니다.
});
$serv->on('workerStop', function ($serv, $worker_id) {
// 워커가 종료되었습니다.
});
$serv->on('managerStart', function ($serv) {
// 매니저가 시작되었습니다.
});
$serv->on('managerStop', function ($serv) {
// 매니저가 종료되었습니다.
});
$serv->shutdown();
2025-03-31 23:49