Hi Gordon – just a quick thanks for pointing me to [2]. The use case is that of a loading XML into a sharded database: a message containing XML comes into the balancer (python proton reactor), the balancer asks, using a topic with a temp reply_to queue, which shard is smallest and then passes the XML to the smallest shard.
Playing around with [2], and server.py, showed me how to tie things together in a way I’m happy with. Thanks! From: Gordon Sim Sent: 16 November 2017 19:56 To: users@qpid.apache.org Subject: Re: python proton reactor "dynamic message selection"? On 16/11/17 17:30, James Sears wrote: > Is there a way - using the python proton reactor API - to do what I'd call > dynamic message selection? > > By this I mean I'd like my application to do something like this: > > 1. receive message M1 on queue Q1 with unique correlation_id N. > 2. send message M2 to topic T1 with correlation_id N and reply_to queue Q2. > 3. receive messages - M3, M4, etc - to Q2 and use a message selector with > correlation_id N. > 4. messages to Q2 would eventually reach their expiry_time. > 5. remove message selector on Q2 with correlation_id N. > 5. event back to step 1. > > Is this sort of thing possible with proton reactor? > > Just that I'm not sure how I'd be able to create and then remove selectors > that are no longer required. Selectors are set when you create a receiver[1]. You can only remove them by closing the receiver (and then optionally opening again with a different selector (or no selector). However, without fully understanding your use case, I'd suggest maybe using a different reply queue for specific messages rather than trying to use selectors for that. You can have reply queues created dynamically on demand (e.g. [2]) [1] https://git1-us-west.apache.org/repos/asf/qpid-proton/repo?p=qpid-proton.git;a=blob;f=examples/python/selected_recv.py;h=dc062d5f54dda321f9b4b7de7489a58f3a462a4b;hb=HEAD [2] https://git1-us-west.apache.org/repos/asf/qpid-proton/repo?p=qpid-proton.git;a=blob;f=examples/python/client.py;h=86f2c76a7bbe03e563ab0e44a5d1ecff296fdd4d;hb=HEAD#l35 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For additional commands, e-mail: users-h...@qpid.apache.org