In PHP queue workers, how do I consume message queues?

In PHP queue workers, consuming message queues typically involves using a message broker, such as RabbitMQ, Redis, or Amazon SQS. Below is an example of how you can implement a simple queue worker in PHP to consume messages from a queue.

<?php // Include the Composer autoloader require 'vendor/autoload.php'; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; // Establish a connection to the RabbitMQ server $connection = new AMQPStreamConnection('localhost', 5672, 'user', 'password'); $channel = $connection->channel(); // Declare the queue that we want to consume from $channel->queue_declare('task_queue', false, true, false, false, false, null); echo 'Waiting for messages...' . PHP_EOL; // Callback function to process messages $callback = function($msg) { echo 'Received: ' . $msg->body . PHP_EOL; // Simulate some processing time sleep(substr_count($msg->body, '.')); echo 'Done processing: ' . $msg->body . PHP_EOL; }; // Start consuming messages from the queue $channel->basic_consume('task_queue', '', false, false, false, false, $callback); // Loop to keep the script running and waiting for messages while ($channel->is_consuming()) { $channel->wait(); } // Close the channel and connection when done $channel->close(); $connection->close(); ?>

PHP Queue Workers Message Queues RabbitMQ PHP Message Queue Consuming Messages