1. <?php
  2. // Simple message queue environment setup in PHP
  3. // Using Redis as a lightweight message broker. Install: composer require predis/predis
  4. require 'vendor/autoload.php'; //Ensure Predis is installed
  5. use Predis\Client;
  6. // Configuration
  7. $redisHost = '127.0.0.1'; // Redis server host
  8. $redisPort = 6379; // Redis server port
  9. $queueName = 'experiment_queue'; // Name of the message queue
  10. try {
  11. // Connect to Redis
  12. $redis = new Client([
  13. 'scheme' => 'tcp',
  14. 'host' => $redisHost,
  15. 'port' => $redisPort,
  16. ]);
  17. // Create the queue if it doesn't exist
  18. if (!$redis->exists($queueName)) {
  19. $redis->rpush($queueName, 'initial_message'); // Add an initial message
  20. echo "Queue '$queueName' created and initialized.\n";
  21. } else {
  22. echo "Queue '$queueName' already exists.\n";
  23. }
  24. // Function to enqueue a message
  25. function enqueueMessage($message) {
  26. $redis->rpush($queueName, $message);
  27. echo "Message enqueued: " . $message . "\n";
  28. }
  29. // Function to dequeue a message
  30. function dequeueMessage() {
  31. $message = $redis->lpop($queueName);
  32. if ($message) {
  33. echo "Message dequeued: " . $message . "\n";
  34. return $message;
  35. } else {
  36. echo "Queue is empty.\n";
  37. return null;
  38. }
  39. }
  40. } catch (\Exception $e) {
  41. echo "Error connecting to Redis: " . $e->getMessage() . "\n";
  42. }
  43. ?>

Add your comment