laravel Job 和事件

在作項目的時候,一直對JobEvent有個疑惑。感受二者是相同的東西,搞不清楚二者的區別在哪裏!通過一段時間的琢磨和查找了相關的資料,對JobEvent作了一些總結,以便記憶。異步

Job

Job既能夠用做同步,也能夠用做異步。
若是你想延遲執行一個操做,或者這個過程須要花費一段時間,那麼就能夠選擇用Job,例如上傳一個比較大的文件。
Job通常用在正在處理的事情。好比咱們去銀行辦理業務,不少人排隊等待,咱們能夠把這條隊當作一個隊列queue,把每個人當作一個Job,服務人員會幫咱們一個接一個的處理業務。辦完了一個業務,系統會叫號叫到下一我的,執行下一個Job。每一個人須要辦理的業務都不同,這就是每一個Job須要完成的任務。code

Event

事件監聽能夠容許參與不一樣的角色。事件監聽能夠認爲是特定事件發生的一個Job,一旦事件建立,監聽器就會觸發。事件能夠理解成「當...」,「就...」。 一個事件能夠被多個監聽器監聽,好比登陸後,系統既要發送郵件,又要發送短信,這個時候,就能夠創建一個登陸事件,事件觸發後,同事被髮送郵件和發送短信監聽到。隊列

Job能夠不間斷的執行,相似於咱們要在每晚凌晨執行一個腳本。事件

總結來講

Job關注與正在作的事情:同步

  • 正在註冊
  • 正在更新
  • 正在發佈
  • 批量發放

Event關注與作過的事情:登錄

  • 註冊完成
  • 更新完成
  • 發佈完成
  • 發送完成

Event 更多的用在已經完成的事情,相似於英語的過去式事件監聽

相關文章
相關標籤/搜索