But Qpid doesn't currently support selectors, right? Adam
On Tue, Jan 6, 2009 at 5:23 PM, Robert Greig <robert.j.gr...@gmail.com> wrote: > 2009/1/6 Adam Chase <adam.cha...@gmail.com>: > >> 4) something else?? If I have the queue auto-delete, won't I lose >> messages if the consumer that is subscribed to that work queue >> crashes? Put all the work in one queue and have consumers release >> messages that they aren't responsible for, group responsibility could >> be managed via another tool or some sort of algorithm where messages >> are broadcasted to consumers. > > I would do this using message selectors. That would avoid a lot of > queue creation and deletion. > > You could have two queues: one queue contains the "job descriptors" > that gives out the ids that you are going to select on. The other > queue (or indeed queues) would contain the messages with the id you > are going to select on. > > A consumer works by reading a message (or messages) from the job > descriptor queue. This is done within a txn that is not committed so > that if the consumer crashes the message is automatically put back on > the queue. Having read the job(s), in another session the consumer can > start reading from the job queue, selecting on the job descriptor ids. > > This way you can scale up the number of consumers quite simply and the > job descriptors will be spread between them. > > RG >