このチュートリアルでは、Laravel で cron ジョブを実行する方法を説明しますが、何よりも生徒にとって物事をシンプルで簡単なものにします。 Laravel アプリを構築しながら、これらの自動化されたタスクを自分のコンピューター上でセットアップして実行する方法を検討していきます。
まず、cron ジョブとは正確には何ですか?あなたの Web サイトのパーソナル アシスタントとして考えてください。決して眠らず、常に時間通りに現れるアシスタントです。これは、特定の時間に自動的に実行されるようにスケジュールするタスクです。 Laravel では、これらを使用して反復的なジョブを処理し、アプリケーションをスムーズに実行し続けます。
ここで、「これらの cron ジョブを自分のコンピュータで実行するにはどうすればよいでしょうか?」と疑問に思われるかもしれません。これを段階的に説明していきます。最後には、プロのようにタスクのスケジュールを設定できるようになります。
Laravel のスケジューリング システムの中心である app/Console/Kernel.php ファイルから始めましょう。ここで魔法が起こります。このファイルを開くと、schedule というメソッドが表示されます。これはタスクを設定するための遊び場です。次のようになります:
protected function schedule(Schedule $schedule) { $schedule->command('emails:send')->daily(); }
この例では、Laravel に「毎日メールを送信してほしいのですが」と伝えます。それはとても簡単です! Laravel には、タスクをいつ実行するかについてのオプションがたくさんあります。必要に応じて、1 時間ごと、1 週間に 1 回、さらには 5 分ごとに実行することもできます。
さて、ここからが少し難しくなります。実際の Web サーバーには、これらのスケジュールされたタスクを自動的に実行するシステムがあります。ただし、自分のコンピュータでは、少し創造性を発揮する必要があります。
Laravel は、スケジュールされたタスクを手動で実行するための便利なコマンドを提供します。これをターミナルに入力できます:
php artisan schedule:run
このコマンドは、「今期限になっているタスクをすべて実行してください」と言っているようなものです。しかし、正直に言うと、座ってこのコマンドを何度も入力するのは嫌ですよね?
それでは、巧妙なトリックを紹介します。このコマンドを毎分実行する簡単なスクリプトを作成できます。コンピューター上に小さなロボットアシスタントがいるようなものです。そのスクリプトは次のようになります:
#!/bin/bash while true do php /path/to/your/project/artisan schedule:run >> /dev/null 2>&1 sleep 60 done
怖がらないでください!これは、コンピュータに 60 秒ごとにSchedule:run コマンドを実行するように指示しているだけです。これを .sh ファイルとして保存し、プロジェクトの作業中にバックグラウンドで実行します。
スケジュールされたタスクをテストしているので、ログを追加することをお勧めします。こうすることで、舞台裏で何が起こっているかを確認できます。それは自分自身のためにパンくずリストの跡を残すようなものです。
このセットアップは、自分のコンピューターでアプリを構築してテストする場合に最適であることを覚えておいてください。実際に Web サイトを立ち上げる準備ができたら、Web サーバーで少し異なる設定を行う必要があります。
Laravel の作成者、Taylor Otwell はかつてこう述べました。「タスクのスケジューリングは、現代の Web 開発の重要な側面であり、開発者は反復的なタスクを自動化し、アプリケーションの全体的な効率を向上させることができます。」彼は絶対に正しいです!スケジュールされたタスクをマスターすることで、より強力で効率的な Web アプリケーションの構築に向けて大きな一歩を踏み出すことができます。
これで完成です!これで、Laravel アプリを構築しながら、自分のコンピューターで cron ジョブをセットアップして実行する準備が整いました。最初は少し複雑に思えるかもしれませんが、練習すると自然になることがわかります。実験を続ければ、いつの間にか熟練のプロのようにタスクのスケジュールを立てることができるようになります!
以上がLaravelでCronジョブを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。