Laravel は、PHP に基づいたオープンソースの Web アプリケーション フレームワークです。ルーティング、セッション管理、認証などの一般的な Web 開発タスクが大幅に簡素化されます。 Laravel には、指定した時間にプログラム コードを簡単に実行できるタスク スケジューラと呼ばれるツールも提供されています。この記事では、Laravelのタスクスケジューラーとスケジュールされたタスクの設定方法を紹介します。
タスク スケジューラは、ユーザーが指定した時間にプログラム コードを自動的に実行できるようにする Laravel フレームワークの一部です。これは、1 回限りのイベントでも、定期的な間隔イベントでも構いません。タスク スケジューラには、スケジュールされたタスクを管理するためのさまざまな方法が用意されており、使用とデバッグが簡単になります。 Laravelでは、タスクスケジューラは「スケジューラ」と呼ばれるオブジェクトを使用して、スケジュールされたタスクを管理します。
Laravel タスク スケジューラは、次の 3 つの主要コンポーネントを使用します。
Scheduler は、タスク スケジューラのコア コンポーネントです。これは、計画されたタスクのスケジュールと管理を担当するオブジェクトです。スケジューラを使用すると、タスクをスケジュールと期間に割り当てる簡単な方法が提供されます。タスクが割り当てられると、スケジューラはそのタスクが指定された時間に確実に実行されるようにする責任があります。スケジューラは、コマンド、クロージャ、メソッド呼び出しなどの複数のタスク タイプをサポートします。
スケジュールは、スケジュールされたタスクの実行時間を指定するために使用されるオブジェクトです。タイムテーブルは、タスクをいつ実行するかを指定する直感的な方法を提供します。スケジューラは、タスクを特定のスケジュールに割り当てて、スケジュールされた時間内にタスクが確実に実行されるようにすることができます。
リスナーは、スケジュールされたタスクの実行結果を記録する役割を担うオブジェクトです。タスクが異常であるか、計画どおりに実行されない場合、リスナーは関連するイベントを記録します。これは、ユーザーがいつタスクのタイミングを変更したり、その他の設定を調整したりする必要があるかを判断するのに役立ちます。
Laravel でスケジュールされたタスクを設定するには、次の手順を完了する必要があります。
まず、実際の作業を行うコントローラーとコマンドを作成する必要があります。この例では、「TaskController」コントローラーを作成し、「TaskCommand」コマンドをそれに割り当てます。
php artisan make:controller TaskController php artisan make:command TaskCommand
TaskCommand.php ファイルを開き、実際のタスクが実行されるように「fire」メソッドを更新します。この例では、現在のタイムスタンプをファイルに書き込むタスクを設定します。
public function fire() { file_put_contents(storage_path().'/task.log', time(). "\n", FILE_APPEND); }
app/Console/Kernel.php ファイルを開き、新しいタスクを追加します。この例では、タスクを毎分実行するように設定します。
protected function schedule(Schedule $schedule) { $schedule->command('task')->everyMinute(); }
最後に、次のコマンドを使用してタスク スケジューラを実行できます。
php artisan schedule:run
このコマンドは、Laravel タスク スケジューラをスキャンし、実行する必要があるタスク。
Laravel タスクスケジューラーを使用すると、繰り返しタスクを定期的に簡単に実行できます。 Laravel は、スケジュールされたタスクの設定と管理を非常に簡単にする強力なタスク スケジューラーを提供します。タスクを自動化する必要がある場合は、おそらく Laravel タスク スケジューラが最適な選択です。
以上がLaravelでスケジュールされたタスクを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。