ホームページ  >  記事  >  PHPフレームワーク  >  swooleでスケジュールされたタスクを実装する方法

swooleでスケジュールされたタスクを実装する方法

WBOY
WBOYオリジナル
2022-02-14 14:30:463180ブラウズ

方法: 1. 「swoole_timer_after (時間、実行する関数)」ステートメントを使用して、指定した時間後にタスクを実行します; 2. 「swoole_timer_tick (時間、実行する関数、コールバック関数)」を使用します。 " ステートメントで間隔を設定します。 時計タイマーはタスクを定期的に実行します。

swooleでスケジュールされたタスクを実装する方法

このチュートリアルの動作環境: Windows10 システム、Swoole4 バージョン、DELL G3 コンピューター

swoole でスケジュールされたタスクを実装する方法

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 時間が経過した後に実行される関数は呼び出し可能である必要があります。コールバック関数はパラメータを受け入れません

  • #$param コールバック パラメータ

  • #$ms 最大値は 86400000
  • ## を超えてはなりません

    #Tick タイマーはバージョン 1.7.14 以降で使用できます
  • #Tick タイマーはまもなく swoole_timer_add に置き換わります

コールバック関数

コールバック関数は、タイマーは 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 チュートリアル

以上がswooleでスケジュールされたタスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。