1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| <?php require_once '../vendor/autoload.php';
use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; use PhpAmqpLib\Wire\AMQPTable;
$connection = new AMQPStreamConnection('localhost', 5672, 'guest', 'guest'); $channel = $connection->channel();
$dead_exchange = 'dead_direct_exchange'; $dead_queue_name = 'dead_queue'; $dead_routing_key = 'dead'; $channel->exchange_declare($dead_exchange, 'direct', false, false, false); $channel->queue_declare($dead_queue_name, false, true, false, false); $channel->queue_bind($dead_queue_name, $dead_exchange, $dead_routing_key);
$ttl_exchange = 'ttl_exchange'; $ttl_routing_key = 'ttl_message'; $channel->exchange_declare($ttl_exchange, 'direct', false, false, false);
$arguments = new AMQPTable(); $arguments->set('x-message-ttl', 5000); $arguments->set('x-dead-letter-exchange', $dead_exchange); $arguments->set('x-dead-letter-routing-key', $dead_routing_key); $ttl_queue_message = 'ttl_queue_message'; $channel->queue_declare($ttl_queue_message, false, true, false, false, false, $arguments); $channel->queue_bind($ttl_queue_message, $ttl_exchange, $ttl_routing_key);
$arguments = new AMQPTable(); $arguments->set('x-expires', 10000); $arguments->set('x-dead-letter-exchange', $dead_exchange); $arguments->set('x-dead-letter-routing-key', $dead_routing_key); $ttl_queue = 'ttl_queue'; $channel->queue_declare($ttl_queue, false, true, false, false, false, $arguments); $channel->queue_bind($ttl_queue, $ttl_exchange, $ttl_routing_key);
for ($i = 1; $i <= 10; $i++) { $msg = new AMQPMessage('AAA test test——' . $i, [ 'expiration' => 10000 ]); $channel->basic_publish($msg, $ttl_exchange, $ttl_routing_key); }
$channel->close(); $connection->close();
|