PHPackages                             mle86/wq-amqp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. mle86/wq-amqp

ActiveLibrary[Queues &amp; Workers](/categories/queues)

mle86/wq-amqp
=============

An AMQP module for mle86/wq using the php-amqplib connector

v1.4.1(8mo ago)01.5kMITPHPPHP &gt;=8.0CI failing

Since Jul 7Pushed 8mo ago1 watchersCompare

[ Source](https://github.com/mle86/php-wq-amqp)[ Packagist](https://packagist.org/packages/mle86/wq-amqp)[ RSS](/packages/mle86-wq-amqp/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (5)Versions (16)Used By (0)

WQ-AMQP (`mle86/wq-amqp`)
=========================

[](#wq-amqp--mle86wq-amqp)

This package contains the PHP class `mle86\WQ\WorkServerAdapter\AMQPWorkServer`.

It supplements the [**mle86/wq**](https://github.com/mle86/php-wq) package by implementing its `WorkServerAdapter` interface.

It connects to an AMQP server such as [RabbitMQ](https://www.rabbitmq.com/)using the [php-amqplib/php-amqplib](https://github.com/php-amqplib/php-amqplib) package.

It creates durable queues in the default exchange (“”) for immediate-delivery jobs and the durable “`_phpwq._delayed`” queue in the custom “`_phpwq._delay_exchange`” exchange for delayed jobs. Jobs stored with `storeJob()` are always durable as well. Empty queues or exchanges won't be deleted automatically.

Version and Compatibility
=========================

[](#version-and-compatibility)

This is **version 1.4.0**of `mle86/wq-amqp`.

It was developed for version 1.0.0 of `mle86/wq`and should be compatible with all of its future 1.x versions as well.

Installation and Dependencies
=============================

[](#installation-and-dependencies)

```
$ composer require mle86/wq-amqp

```

It requires PHP 8.0+.

It depends on [mle86/wq](https://github.com/mle86/php-wq)and [php-amqplib/php-amqplib](https://github.com/php-amqplib/php-amqplib), which in turn requires the [mbstring](https://php.net/manual/book.mbstring.php), [sockets](https://php.net/manual/book.sockets.php), and [bcmath](https://php.net/manual/book.bc.php)PHP extensions.

Class reference
===============

[](#class-reference)

`class mle86\WQ\WorkServerAdapter\AMQPWorkServer implements WorkServerAdapter`

- `public function __construct (AMQPStreamConnection $connection)`
    Constructor. Takes an already-configured `AMQPStreamConnection` instance to work with. Does not attempt to establish a connection itself – use the `connect()` factory method for that instead.
- `public static function connect ($host = 'localhost', $port = 5672, $user = 'guest', $password = 'guest', $vhost = '/', $insist = false, $login_method = 'AMQPLAIN', $login_response = null, $locale = 'en_US', $connection_timeout = 3.0, $read_write_timeout = 3.0, $context = null, $keepalive = false, $heartbeat = 0)`
    Factory method. See [AMQPStreamConnection::\_\_construct](https://github.com/php-amqplib/php-amqplib/blob/v2.7.2/PhpAmqpLib/Connection/AMQPStreamConnection.php#L8)for the parameter descriptions.

Interface methods which are documented in the [`WorkServerAdapter`](https://github.com/mle86/php-wq/blob/master/doc/Ref_WorkServerAdapter_interface.md) interface:

- `public function storeJob (string $workQueue, Job $job, int $delay = 0)`
- `public function getNextQueueEntry ($workQueue, int $timeout = DEFAULT_TIMEOUT): ?QueueEntry`
- `public function buryEntry (QueueEntry $entry)`
- `public function requeueEntry (QueueEntry $entry, int $delay, string $workQueue = null)`
- `public function deleteEntry (QueueEntry $entry)`

Usage example
=============

[](#usage-example)

```
