1- Provide your queue configuration using config.
$config = new Config([
'SampleQueue' => [
'type' => 'Database',
'class' => 'PostgresQueue',
'attributes' => [],
'actions' => [
'consume' => 'SkipLockBasedConsumeAction',
'send' => 'DefaultSendAction',
'resolve' => 'SkipLockBasedResolveAction',
],
],
]);
2- Create a new queue message to be stored in the queue:
$message = new DefaultQueueMessage();
$message->setBody('Example Message');
$message->setAttribute('Encoding', 'gzip');
$message->setAttribute('DataType', 'JSON');
3- Get your queue using MessageQueueService
and push your message into the queue
:
$queue = $this->queue->getQueue('sampleQueue');
$queue->sendMessage($message);
4- Create a consumer to consume the message.
class ExampleConsumer extends ConsumerInterface
{
public function consume(QueueMessageInterface $message)
{
// Do your thing...
$message->setResolved(true);
}
}
5- Use the consume method of the queue to consume the message using the consumer:
$consumer = new ExampleConsumer();
$booleanResult = $queue->consume($consumer);