使用 Laravel 任務排程

打開排程檔案

打開 yourProjectName/app/Console/Kernel.php

輸入你的排程

排程範例如下:

protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
Token::where('expiry_time', '<', time())->delete();
PaymentServiceOrders::deleteExpiredOrders();
Order::where('expiry_time', '<', Carbon::now())->delete();
})->daily();
}

我設定的任務排程, 是每天固定刪除資料庫裡過期的訂單。

將 Laravel 排程加入到 Linux 的 crontab 中

  1. sudo vim /etc/crontab
  2. * * * * * apache cd /var/www/html/yourProjectName && php artisan schedule:run >> /dev/null 2>&1
  • 前面的 * 依序分別代表
    1. 分(0-59)
    2. 時(0-23)
    3. 每月的第幾天(1-31)
    4. 月份(1-12)
    5. 每週的第幾天(0-6)
  • apache
    表示使用者, 這關乎權限問題, 當執行的 schedule 中出現錯誤, log 會由此使用者而建立, 若權限沒有設好, 之後的使用者都將無法讀取 log, 若我們本身有額外記 log 的話, 會因為此 log 檔無法被開啟而造成錯誤
  • cd ray cd /var/www/html/yourProjectName
    到該目錄底下
  • php artisan schedule:run >> /dev/null 2>&1
    執行 Laravel 的排程指令
  1. 以上, 這樣應該就可以順利地跑起來了!
Laravel串接歐付寶第三方金流支付 怎麼在 Laravel 中, 利用 AWS SES 發郵件?

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×