>本文介绍了如何使用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()
调度命令: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!'); }
app/Console/Kernel.php
>
$commands
>将上面提到的单个CRON作业添加到服务器的crontab中。 Laravel的调度程序将管理其余的。>
常见问题(常见问题解答):schedule
>
app/Console/Kernel.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 }
以上是如何在Laravel应用程序中设置Cron工作的详细内容。更多信息请关注PHP中文网其他相关文章!