laravel Job 和事件

在作项目的时候,一直对JobEvent有个疑惑。感受二者是相同的东西,搞不清楚二者的区别在哪里!通过一段时间的琢磨和查找了相关的资料,对JobEvent作了一些总结,以便记忆。异步

Job

Job既能够用做同步,也能够用做异步。
若是你想延迟执行一个操做,或者这个过程须要花费一段时间,那么就能够选择用Job,例如上传一个比较大的文件。
Job通常用在正在处理的事情。好比咱们去银行办理业务,不少人排队等待,咱们能够把这条队当作一个队列queue,把每个人当作一个Job,服务人员会帮咱们一个接一个的处理业务。办完了一个业务,系统会叫号叫到下一我的,执行下一个Job。每一个人须要办理的业务都不同,这就是每一个Job须要完成的任务。code

Event

事件监听能够容许参与不一样的角色。事件监听能够认为是特定事件发生的一个Job,一旦事件建立,监听器就会触发。事件能够理解成“当...”,“就...”。 一个事件能够被多个监听器监听,好比登陆后,系统既要发送邮件,又要发送短信,这个时候,就能够创建一个登陆事件,事件触发后,同事被发送邮件和发送短信监听到。队列

Job能够不间断的执行,相似于咱们要在每晚凌晨执行一个脚本。事件

总结来讲

Job关注与正在作的事情:同步

  • 正在注册
  • 正在更新
  • 正在发布
  • 批量发放

Event关注与作过的事情:登录

  • 注册完成
  • 更新完成
  • 发布完成
  • 发送完成

Event 更多的用在已经完成的事情,相似于英语的过去式事件监听

相关文章
相关标签/搜索