[rabbitmq-discuss] TTL on Consumers in PHP
Sean Joyce
sean.joyce at patientco.com
Wed Jun 25 14:16:47 BST 2014
Michael -
Apologies for asking you to be pedantic, but I'm still a little hazy on how
I would implement my desired behavior.
I actually have the 'quit' functionality embedded in my callback, though I
stripped it out for my example for simplicity. With or without though, when
I run my consumer, my code hits the '$this->channel->wait();' line and
doesn't exit until an external event (new message) enters the queue. My
preference is that a Consumer itself knows when it has sat idle long enough
to terminate itself rather than having an external process monitor it.
Should this be done by subclassing AMQPChannel? Like I said, I'm still a
little hazy.
-Sean
On Tue, Jun 24, 2014 at 11:31 PM, Michael Klishin <mklishin at gopivotal.com>
wrote:
> On 25 June 2014 at 00:43:15, Sean Joyce (sean.joyce at patientco.com) wrote:
> > > I've been trying to figure out where to call basic_cancel in
> > this code, but not finding the right solution. Any tips on how
> > to refactor and get what I want?
> >
> > public function consume() {
> > $callback = function($msg) {
> > $pMsg = new ProcessorMessage();
> > $pMsg->onMessage($msg->body);
> >
> $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
> > };
> >
> > $this->channel->basic_qos(null, 1, null);
> > $this->channel->basic_consume($queue_name, '', false,
> > false, false, false, $callback);
> >
> > while(count($this->channel->callbacks)) {
> > $this->channel->wait();
> > }
> >
> > }
>
> Sean,
>
> Take a look at the following 2 examples:
>
>
> https://github.com/videlalvaro/php-amqplib/blob/master/demo/amqp_consumer_non_blocking.php
>
> https://github.com/videlalvaro/php-amqplib/blob/master/demo/amqp_consumer.php#L52-54
>
> --
> MK
>
> Staff Software Engineer, Pivotal/RabbitMQ
>
--
*Sean M. Joyce*
Director of Product Engineering | Patientco
sean.joyce at patientco.com
888.747.2455 x412
<http://info.patientco.com/himss>
<http://info.patientco.com/happy-providers>
--
As a friendly reminder, never send Protected Health Information (PHI) via
email.
CONFIDENTIALITY NOTICE: The information contained in this email message
may be privileged, confidential, and protected from disclosure.
Any unauthorized use, printing, copying, disclosure, dissemination of or
reliance upon this communication by persons other than the intended
recipient may be subject to legal restriction or sanction. If you are not
the intended recipient, you are hereby notified that you are not authorized
to read, print, retain, copy, or disseminate this message, any part of it,
or any attachments. If you think that you have received this email
message in error, please reply to the sender and delete this email and any
attachments and all copies thereof from your system without reading the
content and destroy any printouts of the e-mail or attachments promptly.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20140625/0989aedc/attachment.html>
More information about the rabbitmq-discuss
mailing list