Tạo cron job trong Laravel 5 (phần 2)

bài viết trước mình đã sơ lược qua về cách tạo cron job trong laravel 5, trong bài này mình sẽ đi sâu vào việc áp dụng command handle để thực hiện một cách chuyên nghiệp hơn

1. Tạo command class

Command class là nơi chúng ta xử lý các vấn đề liên quan tới nghiệp vụ như gửi mail, check log… Và để tạo command class chúng ta mở command line trong folder của dự án và chạy lệnh sau

Kiểm tra thư mục app\commands thì sẽ có 1 class được tạo ra là EmailCommand

Trong class này ta chú ý tới hàm handle, đây sẽ là nơi chúng ta viết các lệnh xử lý nghiệp vụ. Để cho đơn giản thì ví dụ này sẽ in ra đoạn log có nội dung là “Tạo cron job trong laravel phần 2”

2. Đăng ký chạy cron job bằng command handle

Tạo 1 class tên là EmailCommand trong thư mục app\Console\Commands  như sau

Mở file Kernel.php trong thư mục app\Console và khai báo thêm ở mảng $commands như sau

Kéo chuột xuống bên dưới và tìm hàm schedule, thêm đoạn lệnh gọi job cứ 5 phút một lần (hoặc bạn chuyển thành 1 phút 1 lần cho nhanh)

Bây giờ mở command line và gõ câu lệnh sau. Sau đó kiểm tra log thì sẽ thấy cứ 5 phút có 1 đoạn log được ghi ra là “Tạo cron job trong laravel phần 2”

Chú ý : Đoạn lệnh trên có thể không chạy được trong môi trường window, mình đang giả lập cygdrive để chạy