Yêu cầu thg 4 11, 2018 5:27 CH 148 0 1
  • 148 0 1
+1

Tự động gửi request theo thời gian trong database

Chia sẻ
  • 148 0 1

Mọi người cho e hỏi e có 1 hàm gửi thông báo đến các users nhưng không phải gửi đến các users cùng 1 lúc mà được gửi trong các thời điểm khác nhau, thời gian gửi được lấy tử 1 bảng thời gian, mỗi user được gán với thời gian gửi của bảng đó, bằng laravel được không ạ. Em có tìm hiểu cronjob, Scheduling, queues nhưng chưa thực sự hiểu rõ lắm và cũng ko biết có áp dụng được không, mong mọi người giúp đỡ Em xin cảm ơn !

1 CÂU TRẢ LỜI


Đã trả lời thg 4 12, 2018 12:26 SA
Đã được chấp nhận
+4

Đúng như em nói, em có thể giải quyết bài toán trên bằng Task Scheduling của Laravel. Bản chất của nó là sử dụng cronjob của Linux/Unix để đặt lịch chạy cho một câu lệnh.

Nhìn chung là Laravel support đến tận răng rồi, mình chỉ việc viết logic gửi thông báo thôi 😄

Ở bài toán của em thì em có thể setup schedule là chạy một task (console command) mỗi phút một lần, em chỉ cần một vài dòng config, việc còn lại Laravel sẽ thực hiện cho em.

Trong cái Console Command của em, em viết xử lý lấy trong Database ra, xem có user nào cần gửi thông báo vào thời điểm đó hay không. Nếu có user như thế thì gọi hàm gửi thông báo cho những users đó.

Chú ý là do cronjob chỉ có thể đặt lịch đến mốc thời gian là phút, nên em cũng chỉ có thể xử lý chính xác đến từng phút. Chẳng hạn nếu như trong Database có 2 users với thời gian là 00:00:0100:00:50 thì cũng nên quy về là cùng một phút và đem ra xử lý cùng nhau 😄

Một vài tài liệu em có thể tham khảo 😉

Chia sẻ
Avatar CIG @cig
thg 4 12, 2018 9:55 SA

@thangtd90 thank bác 😄

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí