スケジュールされたタスクのスケジューリングに Hyperf フレームワークを使用する方法
Hyperf は、Swoole 拡張機能に基づく高性能で柔軟な PHP フレームワークです。強力なスケジュールされたタスク スケジューラを含む、豊富な機能とコンポーネントのセットを提供します。この記事では、スケジュールされたタスクのスケジュール設定に Hyperf フレームワークを使用する方法を紹介し、具体的なコード例を示します。
Hyperf フレームワークのインストール
まず、Hyperf フレームワークをインストールする必要があります。 Composer コマンドを使用してインストールできます。
composer create-project hyperf/hyperf-skeleton hyperf-project
スケジュールされたタスク クラスの作成
Hyperf フレームワークでは、HyperfTaskAnnotationAbstractTask## を継承するタスク クラスを作成できます。 # スケジュールされたタスクを実行します。
MyTask という名前のタスク クラスを作成し、
handle() メソッドを実装します。
<?php declare(strict_types=1); namespace AppTask; use HyperfTaskAnnotationTask; use HyperfTaskAnnotationTimer; /** * @Task() */ class MyTask { /** * @Timer(interval=1000, callback="execute", arguments={1, 2}) */ public function handle(int $arg1, int $arg2) { // 执行定时任务逻辑 echo $arg1 + $arg2; } }
@Task アノテーションを使用します。クラスをタスク クラスとしてマークし、
@Timer アノテーションを使用してタスクの実行間隔とコールバック メソッドを指定します。
スケジュールされたタスクのクラスとメソッドを構成ファイルに登録する必要があります。
config/autoload/tasks.php ファイルに、次の構成を追加します。
<?php declare(strict_types=1); return [ 'tasks' => [ AppTaskMyTask::class, ], ];
次のコマンドを使用して、スケジュールされたタスク スケジューラを開始します。 :
php bin/hyperf.php start
<?php declare(strict_types=1); namespace AppTask; use HyperfTaskAnnotationTask; use HyperfTaskAnnotationTimer; /** * @Task() */ class AnotherTask { /** * @Timer(interval=2000, callback="execute") */ public function handle() { // 执行定时任务逻辑 echo 'Another task executed'; } }
<?php declare(strict_types=1); return [ 'tasks' => [ AppTaskMyTask::class, AppTaskAnotherTask::class, ], ];
Coroutine 環境で動作する必要があります。PHP カーネルに Swoole 拡張機能がインストールされていることを確認してください。
以上がスケジュールされたタスクのスケジュールに Hyperf フレームワークを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。