traderinteractive / mongo-queue
Message queue using MongoDB as a backend
Installs: 11 361
Dependents: 0
Suggesters: 0
Security: 0
Stars: 47
Watchers: 36
Forks: 23
Open Issues: 4
Requires
- php: ^7.2 || ^8.0
- ext-mongodb: *
- mongodb/mongodb: ^1.4
Requires (Dev)
- phpunit/phpunit: ^8
- squizlabs/php_codesniffer: ^3.2
README
PHP message queue using MongoDB as a backend.
Features
- Message selection and/or count via MongoDB query
- Distributes across machines via MongoDB
- Message priority
- Delayed messages
- Running message timeout and redeliver
- Atomic acknowledge and send together
- Easy index creation based only on payload
Simplest use
use TraderInteractive\Mongo\Queue; $queue = new Queue('mongodb://localhost', 'queues', 'queue'); $queue->send(new Message()); $messages = $queue->get([], ['runningResetDuration' => 60]); foreach ($messages as $message) { // Do something with message $queue->ack($message); }
Composer
To add the library as a local, per-project dependency use Composer! Simply add a
dependency on traderinteractive/mongo-queue
to your project's composer.json
file such as:
composer require traderinteractive/mongo-queue
Documentation
Found in the source itself, take a look!
Contact
Developers may be contacted at:
Contributing
If you would like to contribute, please use our build process for any changes and after the build passes, send us a pull request on github!
./vendor/bin/phpunit ./vendor/bin/phpcs
There is also a docker-based fig configuration that will execute the build inside a docker container. This is an easy way to build the application:
fig run build