【问题标题】:Laravel 5 Events and QueueLaravel 5 事件和队列
【发布时间】:2015-07-14 16:06:00
【问题描述】:

正如 Laravel 文档 (http://laravel.com/docs/5.1/events#defining-listeners) 中所述,我可以让监听器排队。这使得以异步方式运行事件成为可能。

我对此进行了更深入的研究,发现我什至可以在单独的 Laravel 安装中触发事件,只要它们使用相同的队列实例(在我的情况下为 beanstalkd)并且它们也共享相同的监听器(监听器类应该在两个安装中定义)。

现在我需要更多关于此的信息。

  1. 这样可以吗?我的意思是,它现在有效,但它被认为是“黑客”吗?是否有任何图书馆或其他方式?
  2. 如何使用它来分发事件?我的意思是,当我在某个地方触发一个事件时,会有一些听众会在其他地方被触发。它们不在同一个装置上,它们都必须被解雇。这是我目前的设置无法实现的。

我想我正在寻找一些带有 Laravel 的分布式事件系统,但我不确定......

【问题讨论】:

    标签: events queue laravel-5


    【解决方案1】:

    您不需要队列来实现这一点。我有类似的问题,你和我都是这样解决的:

    1. 如果您想在任何机器上向前端发送事件,我建议您使用Broadcasting events。您可以使用 Redis 或 Pusher。
    2. 如果您想在任何机器上向后端发送事件,您需要使用Redis Sub/Pub。您从任何地方 (PUBlisher) 发送一个事件,并且您需要在每台机器上都有一个侦听器来获取此事件 (SUBscribers)。

    我也使用 Beanstalkd 在多个实例中分配作业。奇迹般有效!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 2016-01-20
      • 1970-01-01
      • 2018-07-29
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多