romainrg / rabbitmq_client
使用PHP-AMQPLib与CodeIgniter交互的RabbitMQ库
7.0-beta
2019-02-27 16:15 UTC
Requires
- php: >=5.4.0
- ext-sockets: *
- codeigniter/framework: ^3.1
- php-amqplib/php-amqplib: ^2.8.1
Requires (Dev)
- santiane/unity: 3.0
This package is auto-updated.
Last update: 2024-09-05 08:37:09 UTC
README
用于轻松与RabbitMQ交互的CodeIgniter库 🐰❤
📚 依赖关系
- PHP 5.4+(带有Composer)
- 服务器上安装了Rabbit MQ(至少3.5.*)
- php-amqplib
- CodeIgniter框架(推荐3.1.8+)
🔰 安装
➡️ 第1步:通过Composer安装库
只需在项目文件夹中运行以下命令即可
composer require romainrg/rabbitmq_client
或者将以下行添加到您的composer.json
文件中
"require": { "romainrg/rabbitmq_client": "^6.2.0" },
别忘了将您的autoload包含到CI配置文件中
$config['composer_autoload'] = FCPATH.'vendor/autoload.php';
➡️ 第2步:在项目目录中使用以下命令运行composer update
$ composer require romainrg/rabbitmq_client
➡️ 第3步:创建以下配置文件
您需要将其创建在位于./application/config/rabbitmq.php
的CI配置文件夹中
<?php defined('BASEPATH') OR exit('No direct script access allowed'); /** * Config for Rabbit MQ Library */ $config['rabbitmq'] = array( 'host' => 'localhost', // <- Your Host (default: localhost) 'port' => 5672, // <- Your Port (default: 5672) 'user' => 'username', // <- Your User (default: guest) 'pass' => 'password', // <- Your Password (default: guest) 'vhost' => '/', // <- Your Vhost (default: /) 'allowed_methods' => null, // <- Allowed methods (default: null) 'non_blocking' => false, // <- Your Host (default: false) 'timeout' => 0 // <- Timeout (default: 0) );
➡️ 第4步:在CI核心控制器文件中加载库
(或者只是一个CI控制器)
$this->load->add_package_path(APPPATH . 'third_party/rabbitmq'); $this->load->library('rabbitmq'); $this->load->remove_package_path(APPPATH . 'third_party/rabbitmq');
➡️ 第5步:享受并给我一些改进或想法! ;)
示例
➡️ 将一些数据推送到队列
这将创建(如果不存在),名为'hello_queue'的队列,并在其中插入文本'Hello World !'。
$this->rabbitmq->push('hello_queue', 'Hello World !');
如果您想通过CLI命令运行CI控制器方法
$ php www.mywebsite.com/index.php 'controller' 'method'
您将得到以下返回
$ [+] Pushing 'Hello World !' to 'hello_queue' -> OK
➡️ 从队列中获取一些数据 (目前仅限CLI)
这将实时从'hello_queue'获取最后插入的数据,激活永久模式并使用'_process'回调函数。
PHP代码
return $this->rabbitmq->pull('hello_queue', true, array($this, '_process'));
在CLI中运行它
$ php www.mywebsite.com/index.php 'controller' 'method'
➡️ 以附加参数将数据推送到队列
这将创建(如果不存在),名为'hello_queue'的队列,并在其中插入文本'Hello World !',第三个参数将'hello_queue'的持久性设置为TRUE(TRUE = 永久,FALSE = 不永久),最后一个参数'delivery_mode (2)使消息持久化(您也可以向此数组添加一些参数)。
$this->rabbitmq->push('hello_queue', 'Hello World !', TRUE, array('delivery_mode' => 2));