Adam Chase wrote:
Premature sending (sorry) (the tab key killed me)

So I have a system where I have groups of messages that need to be
accumulated and then processed exclusively.  I might get a message for
any group at any time.  The space of possible groups is quite large,
but at any time I expect there will be a reasonable number of groups
active.

My plan was:

produce(group, job)
{
      query_queue(group) //to see if it exists
      if (exists)
           send_message(group)
      else
           declare_queue(group, exclusive)
           send_message(group)
           send_message(queues_to_process, group)

}

consume()
{
      queueName = queue.receive(queues_to_process)
      queue.subscribe(queueName)
      queue.receive(queueName) //to get a bunch of messages

      //later when the queue has been idle (for a while)
      queue_delete(queueName)

}

Not sure if I've explained myself well here or not, but my question is
1) Is there a better way to accomplish this sort of thing and 2) can
you think of a way around the race condition between queue_query and
queue_delete?  Does the alternate_exchange setting help any?

Thanks,

Adam

Are you trying/wanting to make sure messages are not sent a queue that is going to be deleted?

Carl.



Reply via email to