
SwooleServer::tick의 callback 함수 안에서 Timer를 사용할 수 있습니다.
SwooleServer::tick의 callback 함수 안에서 Timer를 사용하려면, swoole_timer_add() 함수를 사용하여 Timer를 등록하고, callback 함수에서 Timer를 사용할 수 있습니다.
#hostingforum.kr
php
$serv = new swoole_server("0.0.0.0", 9501);
$serv->tick(1000, function($serv) {
echo "tick callbackn";
swoole_timer_add(2000, function() {
echo "timer callbackn";
}, -1);
});
$serv->on('start', function($serv) {
echo "start callbackn";
});
$serv->on('shutdown', function($serv) {
echo "shutdown callbackn";
});
$serv->start();
SwooleServer::tick과 Timer를 함께 사용할 때 발생할 수 있는 문제점은, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출할 수 있기 때문에, 무한 루프가 발생할 수 있습니다.
또한, SwooleServer::tick과 Timer를 함께 사용할 때 유의할 점은, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출할 때, SwooleServer::tick의 callback 함수가 이미 호출 중인 경우, Timer의 callback 함수가 호출되지 않습니다.
따라서, SwooleServer::tick과 Timer를 함께 사용할 때는, Timer의 callback 함수가 SwooleServer::tick의 callback 함수를 호출하지 않도록 주의해야 합니다.
2025-05-27 14:13