Làm thứ làm cho Laravel Request của bạn thú vị hơn

Cài đặt Supervisor cho Linux để chạy Laravel Queue

Hi các bạn,

Bắt nguồn từ bài giới thiệu Laravel Queue, như mình đã kể. Để Queue nó hoạt động, ta phải chạy:

php artisan queue:work

Thì khi ta chạy lệnh này, Laravel nó sẽ chạy 1 vòng lặp vô tận, liên tục listen và kiểm tra coi có Queue Job nào ko, có thì nó sẽ xử lý ngay.

Cũng chính vì chạy lệnh đó, nó gây terminal/cmd của ta đứng lại (vi đang chạy process), nếu ta tắt thì coi như hết lun :v

Vậy nên Windows mình ko bàn tới, vì mọi thứ ta xài đều deploy lên Linux hết mà. Với Linux ta có khá nhiều trick chạy process ẩn dưới background.

Nhưng tốt nhất thì ta nên xài Supervisor để hỗ trợ ta làm điều đó, với những advantages đem lại là:

  • Cấu hình dc số process sẽ chạy Queue (4-8,…)
  • Cấu hình được tự bắt đầu, tự restart
  • Log được lại quá trình chạy Queue Job

Và bài này, mình sẽ hướng dẫn các bạn cài đặt Supervisor và khởi tạo cấu hình Queue cho Laravel nhé 😀

1/ Cài đặt Supervisor

Chia sẻ luôn là mình rất chuộng Ubuntu, vì nó hoạt động rất ổn định và mạnh mẽ, cộng đồng hơi bị lớn.

Để cài Supervisor, ta chạy lệnh này trên Linux:

sudo apt-get install supervisor

Quá trình cài đặt tự động hết, ta chỉ đợi thui 😀

2/ Cấu hình Supervisor

Ta sẽ tạo 1 file với cái tên bất kỳ với đuôi là .conf (VD: sethphat.conf), cứ tạo nó bên Windows để dễ dàng sửa chữa nhé 😀

Và nội dung file thì ta copy như sau:

[program:sethphat]
process_name=%(program_name)s_%(process_num)02d
command=php /home/sethphat/artisan queue:work --timeout=300
autostart=true
autorestart=true
user=sethphat
numprocs=4
redirect_stderr=true
stdout_logfile=/home/logs/sethphat-queue.log

Những chỗ bạn có thể sửa là:

  • program: Sửa lại tên program của bạn cho giống cái file name của bạn.
  • command: dẫn tới artisan của project Laravel và chạy queue, bạn có thể cấu hình thêm những tham số cần thiết, mình thì chỉ cần timeout thui 😀
  • user: set user sẽ thực thi (lười thì bạn có thể set root luôn :v)
  • numprocs: số process mà Supervisor sẽ chạy, nhập số mà bạn muốn. VPS/Server của bạn mạnh thì 100 cũng dc hehe :3
  • stdout_logfile: đường dẫn tới file log của bạn, ko cần tạo trước file nhé. Supervisor sẽ tự tạo cho bạn 😀

Sau khi đã tạo ra xong file conf, ta upload nó lên thư mục “/etc/supervisor/conf.d/” của Linux (nếu thư mục chưa có thì tự tạo nhé bạn).

Vậy là ta đã xong bước cấu hình 😀

3/ Thực thi Supervisor để chạy Laravel Queue

Chỉ 3 lệnh này thui 😀

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start sethphat:*

Supervisor sẽ bắt đầu thực thi Laravel Queue theo Config của bạn 😀

Để kiểm chứng, bạn có thể khởi tạo 1 Queue Job từ project của bạn và đợi chờ kết quả 😀

4/ Kết luận

Với supervisor, việc quản lý & chạy Laravel Queue của chúng ta sẽ trở lên 1 phần dễ dàng hơn. Cũng như để ta ít bận tâm tới cái process của nó chạy ra sao.

Cám ơn các bạn đã theo dõi!

facebook
Seth Phát

Seth Phát

Mình là Phát - biệt danh Seth Phát. Hiện đang là một Sr. Full-Stack Engineer. Mình là một người yêu thích và đam mê lập trình và hiện tại đang theo về phần Web là chủ yếu. Mạnh Back-end và khá Front-end, vẫn đang theo đều cả 2 :v. Còn gì bằng khi được làm những thứ mà mình yêu thích, đam mê ;)

Leave a Reply

Your email address will not be published. Required fields are marked *

Bình luận qua Facebook