laravel框架中Job和事件event的解析

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于laravel框架中job和事件event的解析,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

在做項目的時候,一直對Job和Event有個疑惑。感覺兩者是相同的東西,搞不清楚兩者的區(qū)別在哪里!經(jīng)過一段時間的琢磨和查找了相關(guān)的資料,對Job和Event做了一些總結(jié),以便記憶。

Job

Job既可以用作同步,也可以用作異步。
如果你想延遲執(zhí)行一個操作,或者這個過程需要花費一段時間,那么就可以選擇用Job,例如上傳一個比較大的文件。
Job一般用在正在處理的事情。比如我們?nèi)ャy行辦理業(yè)務(wù),很多人排隊等待,我們可以把這條隊看成一個隊列queue,把每一個人看成一個Job,服務(wù)人員會幫我們一個接一個的處理業(yè)務(wù)。辦完了一個業(yè)務(wù),系統(tǒng)會叫號叫到下一個人,執(zhí)行下一個Job。每個人需要辦理的業(yè)務(wù)都不一樣,這就是每個Job需要完成的任務(wù)。

Event

事件監(jiān)聽可以允許參與不同的角色。事件監(jiān)聽可以認為是特定事件發(fā)生的一個Job,一旦事件創(chuàng)建,監(jiān)聽器就會觸發(fā)。事件可以理解成“當(dāng)…”,“就…”。 一個事件可以被多個監(jiān)聽器監(jiān)聽,比如登錄后,系統(tǒng)既要發(fā)送郵件,又要發(fā)送短信,這個時候,就可以建立一個登錄事件,事件觸發(fā)后,同事被發(fā)送郵件和發(fā)送短信監(jiān)聽到。

Job可以不間斷的執(zhí)行,類似于我們要在每晚凌晨執(zhí)行一個腳本。

總結(jié)來說

Job關(guān)注與正在做的事情:

  • 正在注冊

  • 正在更新

  • 正在發(fā)布

  • 批量發(fā)放

Event關(guān)注與做過的事情:

  • 注冊完成

  • 更新完成

  • 發(fā)布完成

  • 發(fā)送完成

Event 更多的用在已經(jīng)完成的事情,類似于英語的過去式

相關(guān)推薦:

深入解析PHP的Laravel框架中的event事件操作,laravelevent

深入解析PHP的Laravel框架中的event事件操作,laravelevent

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享