int \Workerman\Timer::add(float $time_interval, callable $callback [, $args = array() , bool $persistent = true])

특정 함수 또는 클래스 메소드를 주기적으로 실행합니다.

참고: 타이머는 현재 프로세스에서 실행되며 workerman은 새로운 프로세스나 스레드를 만들어 타이머를 실행하지 않습니다.

매개변수

time_interval

몇 초마다 한 번씩 실행할지를 나타냅니다. 초 단위이며 소수점을 지원하여 0.001단위로 정밀하게 지정할 수 있습니다.

callback

콜백 함수 참고: 콜백 함수가 클래스 메소드인 경우 메소드는 public 속성이어야 합니다.

args

콜백 함수의 매개변수로, 배열 형태여야 하며 배열 요소는 매개변수 값입니다.

persistent

영구적인지 여부, 한 번만 실행하기를 원한다면 false를 전송합니다(한 번만 실행하는 작업은 실행이 완료되면 자동으로 파괴되며 Timer::del()를 호출할 필요가 없습니다). 기본값은 true로 계속해서 주기적으로 실행합니다.

반환값

타이머의 timerid를 나타내는 정수를 반환합니다. 이를 통해 Timer::del($timerid)를 호출하여 타이머를 파괴할 수 있습니다.

예시

1. 익명 함수(클로저)로 타이머 설정

use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';

$task = new Worker();
$task->count = 1;
$task->onWorkerStart = function(Worker $task)
{
    $time_interval = 2.5;
    Timer::add($time_interval, function()
    {
        echo "작업 실행\n";
    });
};

Worker::runAll();