方法: 1. 「swoole_timer_after (時間、実行する関数)」ステートメントを使用して、指定した時間後にタスクを実行します; 2. 「swoole_timer_tick (時間、実行する関数、コールバック関数)」を使用します。 " ステートメントで間隔を設定します。 時計タイマーはタスクを定期的に実行します。
このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューター
swoole_timer_after
指定された時間後に関数を実行します。これには swoole-1.7.7 以降が必要です。
swoole_timer_after(int $after_time_ms, mixed $callback_function);
swoole_timer_after 関数は、実行完了後に破棄される 1 回限りのタイマーです。 PHPの標準ライブラリが提供するスリープ関数とは異なり、Afterはノンブロッキングです。スリープ呼び出しが行われると、現在のプロセスはブロックされ、新しいリクエストを処理できなくなります。
$after_time_ms はミリ秒単位で時間を指定します。
$callback_function 時間が経過した後に実行される関数は呼び出し可能である必要があります。コールバック関数はパラメータを受け入れません
$after_time_ms は 86400000
使用例
swoole_timer_after(1000, function(){ echo "timeout\n"; });
swoole_timer_tick
インターバル クロック タイマーを設定します。after タイマーとは異なり、tick タイマーは swoole_timer_clear を呼び出してクリアされるまでトリガーされ続けます。 swoole_timer_add とは異なり、ティック タイマーは同じ間隔で複数のタイマーを持つことができます。
int swoole_timer_tick(int $ms, mixed $callback, mixed $param = null);
$ms 時間をミリ秒単位で指定します。
$callback_function 時間が経過した後に実行される関数は呼び出し可能である必要があります。コールバック関数はパラメータを受け入れません
コールバック関数
コールバック関数は、タイマーは 2 つのパラメータを受け入れます。
function onTimer(int $timer_id, mixed $params = null);
$timer_id タイマーの ID。このタイマーをクリアするために swoole_timer_clear に使用できます。
$params によって渡されるユーザー パラメーターswoole_timer_tick
使用例
swoole_timer_tick(1000, function(){ echo "timeout\n"; });
以上がswooleでスケジュールされたタスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。