当前位置: 首页 > 知识库问答 >
问题:

如何消费消息从RabbitMQ在Laravel

邓鸿彩
2023-03-14

我是一个新的学习者,试图理解拉雷维尔的拉比MQ。我已找到驱动程序vyuldashev/laravel队列rabbitmq

我已经配置应用程序/queue.php,并运行驱动程序与此语法"php工匠队列:工作Rabbitmq"。控制器。我不会在我的控制器中调度作业,因为laravel只是监听消息并处理消息。谁能帮我解释一下这是怎么回事?谢啦

共有1个答案

百里骏
2023-03-14

使用以下方式调度作业:

MyJob::dispatch();

它们被安排进行处理,即您开始使用的工作进程:

php artisan queue:work

如果调度的作业没有要处理的作业,则将开始处理该作业。工人将执行分派作业的handle方法。

class MyJob {
  public function handle(){
     // Any logic here will be executed.
  }
}
 类似资料:
  • 我有一个场景,其中可执行文件是生产者,WCF服务是消费者。 WCF服务工作流程如下: 1) 服务调用可执行文件(producer),该可执行文件是另一个将消息生成RabbitMQ队列的进程。 2) 服务必须使用来自RabbitMQ队列的消息 3)将数据返回给客户端。 到目前为止,服务能够调用可执行文件并在队列中生成消息。 但服务从第2步开始失败,它将返回null而不是实际消息。有人能告诉我这里缺少

  • 我运行生产者,它生成N条消息,我在仪表板上看到它们。当我运行接收器时,它会接收来自队列的所有消息,并且队列为空。 我需要有多个生产者生成消息到同一个队列。多个客户从队列中接收消息。消息将被队列TTL删除。但是现在第一个接收者从队列中获取所有消息。我怎么能做到这一点?

  • 问题内容: 通过Rabbitmq中的示例,消费者可以一次从队列中获取所有消息。如何使用一条消息并退出? 问题答案: 您必须声明basicQos设置,才能一次从ACK到NACK状态获取一条消息,并禁用自动ACK以便显式给出确认。 希望能帮助到你!

  • 我的应用程序使用来自RabbitMQ的一些消息并对其进行处理。我有大约10个队列,每个队列最多有10个消费者(线程)。我有5次预回迁。我正在Heroku中使用CloudAMQP插件(RabbitMQ作为服务)运行安装程序。 我使用默认心跳和连接超时设置(60秒)运行。 我的java应用程序是一个使用sping-Rabbit库的Spring Boot应用程序。 版本: 问题是对于一个特定队列的消费者

  • 我使用RabbitMQ作为不同消息的队列。当我使用来自一个队列的两个不同消费者的消息时,我会处理它们并将处理结果插入数据库: 我想大量使用队列中的消息,这将减少数据库负载。由于RabbitMQ不支持消费者批量读取消息,我将这样做smth: 消息在全部完全处理之前处于队列中 如果消费者跌倒或断开连接 - 消息保持安全 你认为这个解决方案怎么样?如果可以的话,如果消费者摔倒了,我怎样才能重新得到所有未

  • 我有一个场景,我想“拉”RabbitMQ队列/主题的消息,并一次处理一个。特别是当消费者启动时,队列中已经有消息。我尝试了以下方法,但没有成功(这意味着,这些选项中的每一个都会读取队列,直到队列为空,或者直到另一个线程关闭上下文)。 1.第一次处理后立即停止路由 与1类似,但使用闩锁而不是while loop和sleep。 使用轮询消费者 使用ConsumerTemplate()-类似于上面的代码