ホームページ >バックエンド開発 >PHPチュートリアル >LaravelアプリでCronジョブを設定する方法
この記事では、Laravelのタスクスケジューラを使用して、サーバー上の繰り返しの管理タスクを管理し、職人コマンドとCronを活用する方法について説明します。 説明を合理化しましょう:
重要な概念:
crontab
php artisan make:console
laravelタスクスケジューラ:schedule
サーバー上の単一のCronジョブが必要です:Kernel
(毎分実行されます)。 laravelは頻度を処理し、予防をオーバーラップします。* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
はすべての値を表します。 例:(毎日12:30に実行)。
Laravel Artisanコマンドの作成:*
30 12 * * * command/to/run
コマンドスケルトンを生成する:
生成されたコマンドクラス(app/console/commands/happybirthday.php)の
メソッドを変更して、タスクロジックを含みます。 例(誕生日SMSの送信):php artisan make:console HappyBirthday --command=sms:birthday
handle()
<code class="language-php">public function handle() { $users = User::whereBirthDate(date('m-d'))->get(); foreach ($users as $user) { if ($user->cellphone) { SMS::to($user->cellphone)->msg('Happy Birthday, ' . $user->fname . '!')->send(); } } $this->info('Birthday messages sent!'); }</code>スケジューリングコマンド:
app/Console/Kernel.php
$commands
:スケジューラの開始:
上記の単一のCronジョブをサーバーのCrontabに追加します。 Laravelのスケジューラは残りを管理します
schedule
app/Console/Kernel.php
よくある質問(FAQ):
<code class="language-php">protected function schedule(Schedule $schedule) { $schedule->command('sms:birthday')->daily(); // Runs daily $schedule->command('anotherCommand')->hourly(); // Runs hourly $schedule->command('myTask')->dailyAt('09:30'); // Runs daily at 9:30 AM $schedule->command('weeklyTask')->weekly()->mondays(); // Runs every Monday $schedule->command('customCron')->cron('0 0 * * *'); // Runs daily at midnight (custom Cron expression) $schedule->command('conditionalTask')->daily()->when(function () { return condition(); }); //Conditional execution }</code>
(元のFAQはよく書かれていて包括的です。変更は必要ありません。) この改訂された応答は、明確さと構造を改善しながら、元の情報を維持します。 読みやすさとベストプラクティスのために、コードの例もわずかに改善されています。
以上がLaravelアプリでCronジョブを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。