Skip to content

Instantly share code, notes, and snippets.

@erdemkeren
Last active March 11, 2020 11:41
Show Gist options
  • Save erdemkeren/51b180be623c3a56577aa295f8d03ea2 to your computer and use it in GitHub Desktop.
Save erdemkeren/51b180be623c3a56577aa295f8d03ea2 to your computer and use it in GitHub Desktop.
Queue Docs

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);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment