Laravel 使用 RabbitMQ 消息队列消费邮件
准备工作 (这里默认你的 RabbitMQ 和 Laravel 已经安装完毕)
- 安装
php-amqplib
在项目目录下运行composer require php-amqplib/php-amqplib
- 封装
RabbitMQ
的基本操作
<?php
namespace App\Components;
use App\Components\BaseComponent;
use PhpAmqpLib\Connection\AMQPStreamConnection;
use PhpAmqpLib\Message\AMQPMessage;
class RmqClientComponent extends BaseComponent
{
private static $instance = null;
private $connection = null;
private $channel = null;
private $message = null;
private function __construct()
{
$this->connection = new AMQPStreamConnection(
config('database.rabbitmq.host'),
config('database.rabbitmq.port'),
config('database.rabbitmq.user'),
config('database.rabbitmq.pass'),
config('database.rabbitmq.vhost')
);
$this->channel = $this->connection->channel();
$this->message = new AMQPMessage('', ['content_type' => 'json', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT]);
}
private function __clone()
{
}
public function __destruct()
{
$this->channel->close();
$this->connection->close();
self::$instance = null;
}
public static function getInstance()
{
if (