Use files on local filesystem as queues. It creates a file per queue\topic. A message is a line inside the file. Limitations It works only in auto ack mode. Local by nature therefor messages are not visible on other servers.
- Installation
- Create context
- Declare topic
- Declare queue
- Bind queue to topic
- Send message to topic
- Send message to queue
- Consume message
- Purge queue messages
$ composer require enqueue/fs
<?php
use Enqueue\Fs\FsConnectionFactory;
$connectionFactory = new FsConnectionFactory([
'store_dir' => '/tmp'
]);
$psrContext = $connectionFactory->createContext();
<?php
/** @var \Enqueue\Fs\FsContext $psrContext */
$fooTopic = $psrContext->createTopic('aTopic');
$message = $psrContext->createMessage('Hello world!');
$psrContext->createProducer()->send($fooTopic, $message);
<?php
/** @var \Enqueue\Fs\FsContext $psrContext */
$fooQueue = $psrContext->createQueue('aQueue');
$message = $psrContext->createMessage('Hello world!');
$psrContext->createProducer()->send($fooQueue, $message);
<?php
/** @var \Enqueue\Fs\FsContext $psrContext */
$fooQueue = $psrContext->createQueue('aQueue');
$consumer = $psrContext->createConsumer($fooQueue);
$message = $consumer->receive();
// process a message
$consumer->acknowledge($message);
// $consumer->reject($message);
<?php
/** @var \Enqueue\Fs\FsContext $psrContext */
$fooQueue = $psrContext->createQueue('aQueue');
$psrContext->purge($fooQueue);