<?php
// Simple message queue environment setup in PHP
// Using Redis as a lightweight message broker. Install: composer require predis/predis
require 'vendor/autoload.php'; //Ensure Predis is installed
use Predis\Client;
// Configuration
$redisHost = '127.0.0.1'; // Redis server host
$redisPort = 6379; // Redis server port
$queueName = 'experiment_queue'; // Name of the message queue
try {
// Connect to Redis
$redis = new Client([
'scheme' => 'tcp',
'host' => $redisHost,
'port' => $redisPort,
]);
// Create the queue if it doesn't exist
if (!$redis->exists($queueName)) {
$redis->rpush($queueName, 'initial_message'); // Add an initial message
echo "Queue '$queueName' created and initialized.\n";
} else {
echo "Queue '$queueName' already exists.\n";
}
// Function to enqueue a message
function enqueueMessage($message) {
$redis->rpush($queueName, $message);
echo "Message enqueued: " . $message . "\n";
}
// Function to dequeue a message
function dequeueMessage() {
$message = $redis->lpop($queueName);
if ($message) {
echo "Message dequeued: " . $message . "\n";
return $message;
} else {
echo "Queue is empty.\n";
return null;
}
}
} catch (\Exception $e) {
echo "Error connecting to Redis: " . $e->getMessage() . "\n";
}
?>
Add your comment