Cài đặt thời gian chạy command trong laravel

Mình có 2 mốc thời gian chạy hằng ngày là 15:23 và 22:15, trong file Kernel.php, mình sử dụng dailyAt thì sẽ viết 2 dailyAt nhưng nó sẽ bị ghì đè lại, Vậy mọi người có giải pháp nào ko nhỉ, Mình cảm ơn nhiều

$schedule->command('name')->dailyAt('15:23')->runInBackground();
$schedule->command('name')->dailyAt('22:15')->runInBackground();

Uhm, tớ không phải chuyên gia về Laravel, cơ mà qua document của họ thì cậu có thể sử dụng when và tùy chỉnh thời gian mà cậu thích.

Cơ mà tớ có mấy điểm tò mò:

  • Cậu đã test việc viết 2 schedule dùng dailyAt ở trên chưa? Và cậu xác nhận nó override chứ? :smile:
    Tại tớ đọc một câu trả lời trên SO, có vẻ như không có vấn đề gì khi viết nhiều dailyAt như vậy.
  • Tại sao khung giờ của cậu lại lẻ vậy? :smile:
    Nó hơi bất thường với tớ, vì thường mọi người chọn giờ chẵn cho dễ nhớ & dễ lên lịch. Tớ không rõ tại sao lại phải là 23 phút và 15 phút. Tại sao không là 00 phút?
3 Likes

thank you, Tớ cũng đọc trên SO thì họ nói sẽ bị gì đè lại nếu cùng một command. Còn thời gian mình thì vấn đề ở số phút, nếu 00 phút ở 2 mốc thời gian thì mình có thể sử dụng twiceDaily rồi

1 Like

Uhm, nếu 2 dailyAt ở cùng 1 command thì nó sẽ override cái còn lại. Điều đó là đúng.
Cơ mà, cậu có 2 command riêng biệt mà?

$schedule->command('name')->dailyAt('15:23')->runInBackground(); 
$schedule->command('name')->dailyAt('22:15')->runInBackground();
3 Likes

Bạn cần đọc kỹ lại nội dung trong link SO một lần nữa.
Trong đó người ta cũng thảo luận rằng nếu dùng 2 dòng command, mỗi cái có dailyAt riêng thì không có vấn đề gì cả.

Bạn cần phân biệt:
Viết 2 dailyAt trong cùng một dòng command:

$schedule->command('name')->dailyAt('15:23')->dailyAt('22:15')

Cùng một command ‘name’ nhưng được viết 2 lần (lên schedule 2 lần cho command ‘name’):

$schedule->command('name')->dailyAt('15:23'); 
$schedule->command('name')->dailyAt('22:15');

Bằng chứng đâu bạn xác nhận rằng nó đã bị ghi đè?
Bạn đã tự mình thử nghiệm trước khi đưa ra kết luận chưa?


Sau khi viết xong comment này và đọc lại một lượt, thì mình thấy ý kiến của @library đã đầy đủ rồi nên muốn xóa comment.
Tuy nhiên, đọc kỹ lại thì bạn vẫn chưa trả lời chính xác câu hỏi của @library

Cậu đã test việc viết 2 schedule dùng dailyAt ở trên chưa? Và cậu xác nhận nó override chứ?

↓ đây là reply của bạn

thank you, Tớ cũng đọc trên SO thì họ nói sẽ bị gì đè lại

Việc bạn đọc được không có nghĩa là nó chắc chắn đúng.

  • Có thể thông tin bạn đọc bị sai.
  • Có thể bạn mệt mỏi và đọc bị sót.
  • Có thể bạn đã chưa hiểu tường tận nội dung mà bạn đã đọc.

Bạn nên tự mình kiểm chứng thực tế trước khi đưa ra thêm bất kì câu hỏi nào.
Ngoài ra, khi nhận được lời khuyên của một người có kinh nghiệm thì không nên trả lời một cách hời hợt, bâng quơ như vậy.
Tại sao khi được hỏi “cậu đã test chưa” thì bạn không tự mình đi test lại?
Bạn đang có sẵn source code cơ mà? Hay là bạn muốn người khác test dùm bạn?

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?