駐列(Queue)的目的是減少反應時間,藉由將花費時間的任務放到駐列中,不需要同步發生,所以不需要等待這些任務都完成後才能回應,透過減少等待任務完成的時間來加快反應,而放到駐列中的任務會在幕後執行。
Laracast用了披薩外送服務的例子來形容駐列的作用:
披薩外送服務情景(沒有駐列的情景)
沒有使用駐列的披薩外送服務就像是一人披薩店,一個人需要獨自完成接單、製作、遞送的一系列環節,由於需要完成這一長串的任務後才能再接下一個單,完成任務的時間過長導致能夠接的訂單數很少。
披薩外送服務情景(使用駐列的情景)
有使用駐列的披薩外送服務就像是多人披薩店,一個人負責接單,並且把點菜單放到單據堆中就可以繼續接下一個單,而其他廚房中的員工們會依照單據堆中的點菜單執行製作、遞送的任務,所以此時接單的人可以很快地回應客戶的需求。點菜單就是一個工作(Job),而單據堆就是駐列,透過將工作放到單據堆中,讓工作可以被儲存以及在幕後執行而加快反應的時間。
明天是實際操作的情況。