https://github.com/mle86/php-wq-beanstalkd
A Beanstalkd adapter for WQ (https://github.com/mle86/php-wq)
https://github.com/mle86/php-wq-beanstalkd
beanstalk beanstalk-worker beanstalkd beanstalkd-tubes php php-library work-queue wq
Last synced: 4 months ago
JSON representation
A Beanstalkd adapter for WQ (https://github.com/mle86/php-wq)
- Host: GitHub
- URL: https://github.com/mle86/php-wq-beanstalkd
- Owner: mle86
- License: mit
- Created: 2017-05-26T22:16:34.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2020-06-18T13:59:43.000Z (about 5 years ago)
- Last Synced: 2025-01-14T15:23:26.949Z (6 months ago)
- Topics: beanstalk, beanstalk-worker, beanstalkd, beanstalkd-tubes, php, php-library, work-queue, wq
- Language: PHP
- Homepage:
- Size: 25.4 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WQ-Beanstalkd (`mle86/wq-beanstalkd`)
This package contains the PHP class
mle86\WQ\WorkServerAdapter\\BeanstalkdWorkServer
.It supplements the
[**mle86/wq**](https://github.com/mle86/php-wq) package
by implementing its `WorkServerAdapter` interface.It connects to a Beanstalkd server
using the [pda/pheanstalk](https://github.com/pda/pheanstalk) package
by Paul Annesley.# Version and Compatibility
This is
**version 1.0.2**
of `mle86/wq-beanstalkd`.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
```
$ composer require mle86/wq-beanstalkd
```It requires PHP 7.1,
[mle86/wq](https://github.com/mle86/php-wq),
and [pda/pheanstalk](https://github.com/pda/pheanstalk).# Class reference
class mle86\WQ\WorkServerAdapter\\BeanstalkdWorkServer implements WorkServerAdapter
`getNextQueueEntry()` uses the `RESERVE` command,
`buryEntry()` uses the `BURY` command,
`storeJob()` and `requeueEntry()` use the `PUT` command,
and `deleteEntry()` uses the `DELETE` command.*Work Queues* are Beanstalkd's “tubes”.
*
public function __construct (Pheanstalk $pheanstalk)
Constructor.
Takes an already-configured `Pheanstalk` instance to work with.
Does not attempt to establish a connection itself –
use the `connect()` factory method for that instead.
*public static function connect (string $host = "localhost", int $port = PheanstalkInterface::DEFAULT\_PORT, int $connectTimeout = null)
Factory method.
See [Pheanstalk::__construct](https://github.com/pda/pheanstalk/blob/master/src/Pheanstalk.php)
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
```php
processNextJob("mail", function(Job $job) {
$job->...;
});
}
```This executes all jobs available in the local Beanstalkd server's “`mail`” tube, forever.
It will however abort if one of the jobs throws an exception –
you might want to add a logging try-catch block around the `processNextJob()` call
as shown in [WQ's “Quick Start” example](https://github.com/mle86/php-wq#quick-start).