Download the PHP package pzr/amqp without Composer

On this page you can find all versions of the php package pzr/amqp. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package amqp

说明

看了AMQP也有很长时间了,一直停留在理论基础上。刚好又想学习Yii框架,那么就以实现AMQP练手吧!
所以,这个类包的诞生纯属巧合,也许只是为了练手而已!

基本用法

引入包:composer require pzr/amqp

简介

队列类型:普通队列、延时队列、优先队列、RPC队列
功能介绍:

队列的定义

首先在配置中创建 amqp.php 用来配置所有和amqp相关的配置。如果是本地测试则可以配置在 MY_amqp.php 中。然后在web.php或者console.php中引入配置文件。

下文队列的定义用到的组件则是如上配置。

普通队列的定义

加载 amqp.php 中的 easyQueue 配置,然后在Controller中调用:

这里的 CountJob 继承 \pzr\amqp\AmqpJob 接口,代码实现如:

延时队列的定义

加载 amqp.php 中的 delayQueue 配置,然后在Controller中调用:

优先队列的定义

优先队列其实在普通队列或延时队列的基础上设置即可,有两种方式。
(1)如普通队列在控制器中绑定的时候设置

(2)在web.php中配置的时候定义队列的 priority 属性也可。

RPC队列定义

加载 amqp.php 中的 rpcQueue 配置,然后在Controller中调用:

注意:RPC队列的消费者必须启用 amqp.php 中 的 rpcConsumer 配置才可使用。

消费者定义

加载 amqp.php 中的 consumer 配置,然后在Controller中调用:

然后在shell中指定待消费的队列名称启动消费者,如下代码:

消费者进程管理web界面

一般情况下推荐使用Supervisor管理消费者进程,但是为了更好的贴切本项目的消费者进程管理,我也尝试的做了一个管理。 支持日志跟踪、AMQP消费者的连接管理和登入功能,只看看首页吧! PHP

事件定义

事件 介绍 用法
EVENT_BEFORE_PUSH 推送消息前触发事件 取消消息确认机制、绑定队列、或对消息进行一些处理
EVENT_AFTER_PUSH 推送消息后触发事件 记录日志或者其他
EVENT_PUSH_NACK 启用消息确认机制,发送方收到服务端nack后触发 确保消息不会丢失处理
EVENT_PUSH_ACK 启用消息确认机制,发送方收到服务端ack后触发 日志记录或者其他
EVENT_BEFORE_EXEC 消费者消费前 日志记录或者其他
EVENT_AFTER_EXEC 启用消息确认机制,发送方收到服务端ack后触发 日志记录或者其他

配置镜像策略

首先在web.php中配置:

在Controller中调用


功能扩展

开启严谨模式

在 amqp.php 配置中配置 "strict" 为true 即可。如:

开启队列创建的严谨模式之后,在创建队列之前会先查看是否已经有队列创建,如果有则不再创建。
需要注意的是:如果开启了队列副本且已创建个别队列的情况下,增加副本数量也不会新增队列。

这种模式只是简单的做了一个队列防止再被创建的保护,但是如果需要对AMQP的元数据(队列、交换器、绑定关系)进行更多的保护,可以通过调用 http://127.0.0.1:15672/api/definitions/ 查看队列的元数据并且做相应的保护。

集成AMQPAPI

默认情况下会复用部分当前队列的配置属性创建API对象,可以通过 Yii::$app->easyQueue->getApi() 获取AmqpApi 对象。

但是如果想要申明自己的API对象,可以有两种方式:

1、复用Yii已定义的组件

2、配置API属性,实例化AmqpApi对象

3、配置API属性,实例化Policy对象

实例化Policy对象之后,就可以在事件 EVENT_BEFORE_PUSH 之前设置策略,如


AMQP ACK Policy

目前实现了3种ACK策略,它们都继承于AckPolicyInterface:

策略 名称 说明
PolicyAckRetryCount 重试次数计数策略 会对当前任务的失败次数作计数统计,当失败次数超过一定数值时,nack放弃处理
PolicyAckNormal 普通ACK策略 当前任务处理失败时,默认requeue
PolicyNoAck 无需ACK策略 无需ACK

3种策略均以组件的形式配置于yii/config/amqp.php,并作为组件注册到console.php中

ACK策略一般配置在消费者中,如不指定,以AmqpBase中ackPolicy属性的默认指定为准。



All versions of amqp with dependencies

PHP Build Version
Package Version
Requires php Version >=7.0.0
php-amqplib/php-amqplib Version ^2.12
yiisoft/yii2 Version ^2.0.3
monolog/monolog Version >=1.0
yiisoft/yii2-debug Version ^2.1
yiisoft/yii2-gii Version ^2.2
mtdowling/cron-expression Version ^1.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package pzr/amqp contains the following files

Loading the files please wait ....