ระบบคิวของ Laravel จัดการกับการพยายามหางานและความล้มเหลวในรูปแบบต่อไปนี้:
การลองทำงานใหม่
1. การลองใหม่ที่กำหนดค่าได้: คุณสามารถกำหนดค่างานที่จะลองใหม่หากพวกเขาล้มเหลวเนื่องจากข้อผิดพลาดชั่วคราวเพิ่มความน่าเชื่อถือของระบบ สิ่งนี้ทำได้โดยการตั้งค่าคุณสมบัติ `stries` บนคลาสงาน [2] [3]
2. การลองใหม่โดยอัตโนมัติ: Laravel ให้การลองใหม่สำหรับงานที่ล้มเหลว หากงานล้มเหลวมันจะถูกลองใหม่จำนวนครั้งก่อนที่จะถูกทำเครื่องหมายว่าล้มเหลว [2] [3]
3. Job Retry Logic: คุณสามารถกำหนดวิธี `Failed` บนคลาสงานเพื่อจัดการกับความล้มเหลวของงาน วิธีนี้เรียกว่าเมื่องานล้มเหลวและอนุญาตให้คุณดำเนินการเฉพาะงาน [3]
งานล้มเหลว
1. ตารางงานที่ล้มเหลว: ร้านค้า Laravel ล้มเหลวในงานในตารางฐานข้อมูล `faild_jobs` ตารางนี้มีข้อมูลเกี่ยวกับรหัสงานการเชื่อมต่อคิวและเวลาล้มเหลว [3]
2. การดูงานล้มเหลว: คุณสามารถดูงานที่ล้มเหลวทั้งหมดโดยใช้คำสั่ง `คิว: ล้มเหลว 'คำสั่งช่างฝีมือ คำสั่งนี้แสดงรายการรหัสงานการเชื่อมต่อคิวและเวลาล้มเหลว [3]
3. การลองงานที่ล้มเหลว: คุณสามารถลองงานที่ล้มเหลวโดยใช้คำสั่ง `คิว: retry` คำสั่งช่างฝีมืออีกครั้ง คำสั่งนี้ใช้รหัสงานเป็นอาร์กิวเมนต์และลองทำงาน นอกจากนี้คุณยังสามารถลองงานที่ล้มเหลวทั้งหมดได้โดยใช้ `คิว: ลอง all` [3] [5]
4. การลบงานที่ล้มเหลว: คุณสามารถลบงานที่ล้มเหลวโดยใช้คำสั่ง `คิว: ลืม 'คำสั่งช่างฝีมือ คำสั่งนี้ใช้รหัสงานเป็นอาร์กิวเมนต์และลบงาน นอกจากนี้คุณยังสามารถลบงานที่ล้มเหลวทั้งหมดได้โดยใช้ `คิว: Flush` [3]
บทสรุป
ระบบคิวของ Laravel ให้กลไกที่แข็งแกร่งสำหรับการจัดการการพยายามหางานและความล้มเหลว โดยการกำหนดค่าการลองใหม่การดูงานที่ล้มเหลวการลองงานที่ล้มเหลวและการลบงานที่ล้มเหลวคุณสามารถมั่นใจได้ถึงความน่าเชื่อถือและประสิทธิภาพของงานการประมวลผลพื้นหลังของคุณ
การอ้างอิง:[1] https://laracasts.com/discuss/channels/laravel/laravel-queue-retry-jobs-5-times
[2] https://wpwebinfotech.com/blog/laravel-queue-system/
[3] https://laravel.com/docs/5.1/queues
[4] https://laracasts.com/discuss/channels/laravel/queue-job-retry-after-x-minutes-if-failed
[5] https://stackoverflow.com/questions/30778924/laravel-4-retry-all-failed-jobs