CC-2084: Integrate RabbitMQ for immediate schedule updates and commands
Implemented RabbitMQ on the pypo side. Schedule updates are now almost instantaneous and we are only polling the server once per hour if we aren't updated in that time. Canceling a show happens right away.
This commit is contained in:
parent
7f7800aa2b
commit
78b33b9e23
5 changed files with 218 additions and 109 deletions
54
library/php-amqplib/demo/amqp_airtime_consumer.php
Normal file
54
library/php-amqplib/demo/amqp_airtime_consumer.php
Normal file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/php
|
||||
<?php
|
||||
/**
|
||||
* Repeatedly receive messages from queue until it receives a message with
|
||||
* 'quit' as the body.
|
||||
*
|
||||
* @author Sean Murphy<sean@iamseanmurphy.com>
|
||||
*/
|
||||
|
||||
require_once('../amqp.inc');
|
||||
|
||||
$HOST = 'localhost';
|
||||
$PORT = 5672;
|
||||
$USER = 'guest';
|
||||
$PASS = 'guest';
|
||||
$VHOST = '/';
|
||||
$EXCHANGE = 'airtime-schedule';
|
||||
$QUEUE = 'airtime-schedule-msgs';
|
||||
$CONSUMER_TAG = 'airtime-consumer';
|
||||
|
||||
$conn = new AMQPConnection($HOST, $PORT, $USER, $PASS);
|
||||
$ch = $conn->channel();
|
||||
$ch->access_request($VHOST, false, false, true, true);
|
||||
|
||||
$ch->queue_declare($QUEUE);
|
||||
$ch->exchange_declare($EXCHANGE, 'direct', false, false, false);
|
||||
$ch->queue_bind($QUEUE, $EXCHANGE);
|
||||
|
||||
function process_message($msg) {
|
||||
global $ch, $CONSUMER_TAG;
|
||||
|
||||
echo "\n--------\n";
|
||||
echo $msg->body;
|
||||
echo "\n--------\n";
|
||||
|
||||
$ch->basic_ack($msg->delivery_info['delivery_tag']);
|
||||
|
||||
// Cancel callback
|
||||
if ($msg->body === 'quit') {
|
||||
$ch->basic_cancel($CONSUMER_TAG);
|
||||
}
|
||||
}
|
||||
|
||||
$ch->basic_consume($QUEUE, $CONSUMER_TAG, false, false, false, false, 'process_message');
|
||||
|
||||
// Loop as long as the channel has callbacks registered
|
||||
echo "Waiting for messages...\n";
|
||||
while(count($ch->callbacks)) {
|
||||
$ch->wait();
|
||||
}
|
||||
|
||||
$ch->close();
|
||||
$conn->close();
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue