首頁 >後端開發 >php教程 >如何在Laravel應用程序中設置Cron工作

如何在Laravel應用程序中設置Cron工作

Joseph Gordon-Levitt
Joseph Gordon-Levitt原創
2025-02-16 12:06:12348瀏覽

>本文介紹瞭如何使用Laravel的任務調度程序來管理服務器上的重複管理任務,利用工匠命令和CRON。 讓我們簡化解釋:

How to Set Up a Cron Job in Your Laravel App

密鑰概念:

  • > cron:使用>(配置文件)的Unix樣系統的任務調度程序。 Laravel任務通常是CLI模式PHP腳本。 crontab
  • Laravel Artisan命令: 使用創建強大的CLI腳本。這為自定義任務生成了命令類框架。 php artisan make:console
  • laravel任務調度程序:輕鬆在> class(app/console/kernel.php)的方法中安排任務。 支持小時,每日,每週,每月和定制的cron時間表。 scheduleKernel調度程序啟動:需要在服務器上進行單個CRON作業:
  • (每分鐘運行)。 Laravel處理頻率和預防重疊。
  • * * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1> cron基礎知識(簡介):
cron使用五場表達式(分鐘,小時,每月,每月,一周的一天)來定義調度。

代表所有值。 示例:(每天在12:30運行)。

>創建Laravel Artisan命令:*> 30 12 * * * command/to/run創建一個命令很簡單:>

生成命令骨架: 在生成的命令類(app/console/commands/happybirthday.php)中修改

的方法以包含您的任務邏輯。 示例(發送生日短信):

  1. php artisan make:console HappyBirthday --command=sms:birthday array中註冊命令。
  2. 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>
    >中使用
  1. >: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn