Laravel Horizon — Set Timeout

Mn
Yeeraf Co., Ltd.
Published in
Mar 8, 2022

ผมได้มีการทำเรื่อง queue สำหรับการ sync ข้อมูล ระหว่าง 2 database ซึ่งการ sync จะมีการดึงข้อมูลจากหลาย table เลยต้องนำ queue มาใช้เพื่อลดปัญหา timeout/การ run process เดียวนานๆ รวมถึงลด load ของ server ด้วย จึงได้ใช้ Laraval Horizon

โดยหลักการคือแยกเลยว่าการ sync แต่ละ table จะแบ่งเป็น job ของแต่ละ table เลย แต่ก็มีบาง table ที่ใช้เวลานานอยู่บางและทำให้ job fail ได้ เนื่องด้วย default ค่า timeout ของ laravel horizon อยู่ที่ 60 วินาที ผมเลยอยากจะปรับให้เป็นซัก 300 วินาที หรือ 5 นาที ซึ่งสามารถทำได้ที่ file config ของ horizon เลย โดยเพิ่ม timeout ใหม่ไปได้เลย ก็จะได้มาประมาณนี้

file: config/horizon.php

--

--