>本文介紹瞭如何使用Laravel的任務調度程序來管理服務器上的重複管理任務,利用工匠命令和CRON。 讓我們簡化解釋:
密鑰概念:
crontab
php artisan make:console
schedule
Kernel
調度程序啟動:* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
> cron基礎知識(簡介):代表所有值。 示例:(每天在12:30運行)。
>創建Laravel Artisan命令:*
>
30 12 * * * command/to/run
創建一個命令很簡單:
生成命令骨架: 在生成的命令類(app/console/commands/happybirthday.php)中修改
的方法以包含您的任務邏輯。 示例(發送生日短信):
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
(原始常見問題解答都寫得很好,無需更改。
<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>>
以上是如何在Laravel應用程序中設置Cron工作的詳細內容。更多資訊請關注PHP中文網其他相關文章!