RabbitMQ : Ruby から利用する2020/04/17 |
RabbitMQ を Ruby から利用する例です。
|
|
[1] | アプリケーションを作成する任意のユーザーで作業します。 事前に AMQP クライアントライブラリをインストールしておきます。 |
[cent@dlp ~]$ gem install bunny Fetching amq-protocol-2.3.1.gem Fetching bunny-2.15.0.gem Successfully installed amq-protocol-2.3.1 Successfully installed bunny-2.15.0 Parsing documentation for amq-protocol-2.3.1 Installing ri documentation for amq-protocol-2.3.1 Parsing documentation for bunny-2.15.0 Installing ri documentation for bunny-2.15.0 Done installing documentation for amq-protocol, bunny after 1 seconds 2 gems installed |
[2] | Ruby スクリプトからのメッセージ送信例です。 例として、[localhost] で稼働する RabbitMQ サーバーに、RabbitMQ ユーザー [serverworld] , バーチャルホスト [my_vhost] へ接続して利用します。 |
[cent@dlp ~]$
vi send_msg.rb require "bunny" connection = Bunny.new( :hostname => "127.0.0.1", :port => 5672, :vhost => "/my_vhost", :user => "serverworld", :pass => "password", ) connection.start channel = connection.create_channel q = channel.queue("Hello_World") channel.default_exchange.publish("Hello RabbitMQ World!", :routing_key => q.name) puts " [x] Sent 'Hello RabbitMQ World!'" connection.close ruby send_msg.rb [x] Sent 'Hello RabbitMQ World!' |
[3] | Ruby スクリプトからのメッセージ受信例です。 例として、上記 [2] で送信したメッセージを受信します。 |
[cent@node01 ~]$
vi receive_msg.rb require "bunny" Signal.trap(:INT){ puts "Exited from receiving queues." exit(0) } connection = Bunny.new( :hostname => "10.0.0.30", :port => 5672, :vhost => "/my_vhost", :user => "serverworld", :pass => "password", ) connection.start channel = connection.create_channel q = channel.queue("Hello_World") puts " [*] Waiting for messages in #{q.name}. To exit press CTRL+C" q.subscribe(:block => true) do |delivery_info, properties, body| puts " [x] Received #{body}" delivery_info.consumer.cancel end ruby receive_msg.rb [*] Waiting for messages in Hello_World. To exit press CTRL+C [x] Received Hello RabbitMQ World! |
Sponsored Link |
|