<div dir="ltr">hello, I am trying to use dead-letter-exchange to create a 'delayed' queue,<br>basically my application takes input from an MQ and then posts the data (using curl) to an external website.<br>If the post operation fails I want it to wait a set amount of time and retry.<br>The idea is to publish these failed tries to a 'dead' queue with no consumer but with a timeout set up.<br>On expiry of the timeout, RabbitMQ should transfer these messages to the dead-letter-exchange which would be the original queue.<br><br>my code is currently here :<br><br>&nbsp; public function publish_delay($data=false) {<br><br>&nbsp;&nbsp;&nbsp; $connection = new AMQPConnection('localhost', 5672, 'guest', 'guest');<br>&nbsp;&nbsp;&nbsp; $channel = $connection-&gt;channel();<br>&nbsp;&nbsp;&nbsp; $channel-&gt;queue_declare('errorXchange',false,true,false,false,false,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array(<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "x-dead-letter-exchange" =&gt; array("S", $this-&gt;channelname),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "x-message-ttl" =&gt; array("I", 5000),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "x-expires" =&gt; array("I", 6000)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );<br>&nbsp;&nbsp;&nbsp; $msg = new AMQPMessage($data);<br>&nbsp;&nbsp;&nbsp; $channel-&gt;basic_publish($msg,'','errorXchange');<br>&nbsp;&nbsp;&nbsp; $channel-&gt;close();<br>&nbsp;&nbsp;&nbsp; $connection-&gt;close();<br>&nbsp; }<br><br>$msg -&gt; is the message I want sent with a delay<br>$this-&gt;channelname would be the channel I want it to go to after the delay<br>'errorXchange' is the dead queue with the ttl &amp; no consumer.<br><br>Currently nothing is coming through on $this-&gt;channelname (where there is a consumer, of course).<br>I haven't understood how to debug rabbitmq or what is going wrong, and there is precious little documentation!<br><br>help would be VERY welcome!<br><br>regards,<br>Dave in Malta.<br></div>