laravel Job 和事件
阿新 • • 發佈:2018-11-17
在做專案的時候,一直對Job
和Event
有個疑惑。感覺兩者是相同的東西,搞不清楚兩者的區別在哪裡!經過一段時間的琢磨和查找了相關的資料,對Job
和Event
做了一些總結,以便記憶。
Job
Job
既可以用作同步,也可以用作非同步。
如果你想延遲執行一個操作,或者這個過程需要花費一段時間,那麼就可以選擇用Job
,例如上傳一個比較大的檔案。Job
一般用在正在處理的事情。比如我們去銀行辦理業務,很多人排隊等待,我們可以把這條隊看成一個佇列queue
,把每一個人看成一個Job
,服務人員會幫我們一個接一個的處理業務。辦完了一個業務,系統會叫號叫到下一個人,執行下一個Job
。每個人需要辦理的業務都不一樣,這就是每個Job
Event
事件監聽可以允許參與不同的角色。事件監聽可以認為是特定事件發生的一個Job
,一旦事件建立,監聽器就會觸發。事件可以理解成“當...”,“就...”。 一個事件可以被多個監聽器監聽,比如登入後,系統既要傳送郵件,又要傳送簡訊,這個時候,就可以建立一個登入事件,事件觸發後,同事被髮送郵件和傳送簡訊監聽到。
Job
可以不間斷的執行,類似於我們要在每晚凌晨執行一個指令碼。
總結來說
Job
關注與正在做的事情:
- 正在註冊
- 正在更新
- 正在釋出
- 批量發放
Event
關注與做過的事情:
- 註冊完成
- 更新完成
- 釋出完成
- 傳送完成
Event
更多的用在已經完成的事情,類似於英語的過去式