Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 事件、侦听器、作业和队列之间的差异_Php_Laravel - Fatal编程技术网

Php 事件、侦听器、作业和队列之间的差异

Php 事件、侦听器、作业和队列之间的差异,php,laravel,Php,Laravel,听起来我非常困惑,有什么区别?有人能做一个ELI5吗?尽管他们都可以一起工作,但我发现最简单的方法是一起查看事件和侦听器,然后一起查看作业和队列 事件和听众 事件是保存“激发”数据的对象,Laravel事件系统在激发事件对象时“捕获”该事件对象,然后运行为该特定事件注册的所有侦听器 仔细想想,这与异常的工作方式类似。您抛出一个异常,并且您可以定义几个catch块来根据抛出的异常做出反应。对于事件和侦听器,将抛出一个事件,一个或多个侦听器表示catch块的内容。虽然相似,但事件和侦听器不是错误处理

听起来我非常困惑,有什么区别?有人能做一个ELI5吗?

尽管他们都可以一起工作,但我发现最简单的方法是一起查看事件和侦听器,然后一起查看作业和队列

事件和听众

事件是保存“激发”数据的对象,Laravel事件系统在激发事件对象时“捕获”该事件对象,然后运行为该特定事件注册的所有侦听器

仔细想想,这与异常的工作方式类似。您抛出一个异常,并且您可以定义几个catch块来根据抛出的异常做出反应。对于事件和侦听器,将抛出一个事件,一个或多个侦听器表示catch块的内容。虽然相似,但事件和侦听器不是错误处理程序,它们只是在概念上有相似之处

作业和队列

我认为最好的办法就是在银行排队。行本身就是队列,行中的每个客户都是一个作业

为了处理队列中的作业,您需要命令行进程或守护进程。可以考虑在命令行上启动队列守护程序,将新的银行出纳员添加到可用的银行出纳员池中。当守护进程可用时,它将要求队列执行下一个作业,就像银行出纳员要求队列中的下一个人进入窗口一样

排队的每个人都有他们想要完成的特定任务,比如存款或取款。排队的人需要完成的动作是拉雷维尔的工人

Worker是守护进程为从队列中获取的作业所做的事情,就像银行出纳员为从队列中走出来的客户所做的任务一样


希望这些都有意义。

谢谢。现在清楚多了!