使用laravel和Rabbitmq将作业发送到远程服务器

时间:2018-09-03 08:32:24

标签: laravel rabbitmq laravel-queue

我们有三台Centos机器:

  • machine1 Laravel
  • machine2 Rabbitmq
  • machine3 Laravel

我在laravel中使用vladimir-yuldashev/laravel-queue-rabbitmq包中的Rabbitmq。

我们希望machine1将作业发送到machine2,并希望machine3从machine2接收作业。接收效果很好,但是machine1不会将工作分派给machine2。我可以将作业从本地发送到机器2,但是机器1无法发送。

laravel也不会在machine1上写任何错误日志。

1 个答案:

答案 0 :(得分:0)

我们也有类似情况。

我已经成功发送了以下消息:

$result= RabbitmqJob::dispatch($encoded)->onQueue('addPackage');
在Windows客户端上

。但是,当部署在CentOS 7服务器上时,它不会发送消息。 PHP没有给我任何错误,但是没有数据包在定义的端口上离开计算机(我已经捕获了网络数据包)。同样,RMQ Web面板显示无连接。 另一方面,在订户服务器上,它已成功连接到RMQ服务器。他们交换心跳(我可以看到频繁的数据包交换),并且可以在RMQ Web面板中看到连接。

问题是我可以按照RMQ教程的建议直接使用php-amqplib发送消息。但是,基于Laravel-queue-RabbitMQ的订户无法接收到该消息,尽管它接收到了它。

我应该怎么做才能使发布者使用Laravel软件包?你们有没有遇到过类似的困难?它与CentOS配置有关吗?顺便说一句,我在所有涉及的机器上都禁用了防火墙和SELinux。

谢谢