[rabbitmq-discuss] basic public-subscribe model with erlang-client

Ben Hood 0x6e6562 at gmail.com
Mon Mar 31 22:33:10 BST 2008


On 31 Mar 2008, at 22:05, joe lee wrote:

> Anyone knows how to do a basic publish (asynchronous method, no  
> syncing with broker) using erlang-client, either in amqp mode or  
> erlang mode?

If I understand you correctly, if you want to publish a message, you  
can do the following:

BasicPublish = #'basic.publish'{ticket = Ticket, exchange = X,
                                     routing_key = RoutingKey,
                                     mandatory = Mandatory,
                                     immediate = Immediate},
Content = #content{class_id = 60,
          properties = amqp_util:basic_properties(), %% either 'none',  
or a decoded record/tuple
          properties_bin = 'none', %% either 'none', or an encoded  
properties amqp_util:binary
          %% Note: at most one of properties and properties_bin can be  
'none' at once.
          payload_fragments_rev = [Payload] %% list of binaries, in  
reverse order (!)
amqp_channel:cast(Channel, BasicPublish, Content),

This code is taken from the setup_publish/3 function in the test_util  
module of the Erlang client.

The cast/3 function in amqp_channel sends the message asynchronously  
irrespective of whether you are using the TCP variant or native Erlang  

BTW, what do you mean when you say "amqp mode or erlang mode"?

> I have a queue and need to send message to the queue asynchronously  
> and consumer will come along and process it.  If you are doing  
> publish-subscribe, do you define a queue like you do for  
> sysnchronous method?

I'm not quite sure I follow. Which synchronous method are you  
referring to?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20080331/ef3f29c1/attachment.htm 

More information about the rabbitmq-discuss mailing list