[4] RabbitMQ – Ruby
22 marca 2022To jest przykład użycia RabbitMQ na Ruby.
[1] Zainstaluj wymagane pakiety.
[root@vlsr01 ~]# dnf install ruby-devel rpm-build gcc make
[2] To jest przykład wysyłania wiadomości na Ruby.
Na przykład połącz się z RabbitMQ na [localhost] z użytkownikiem [zicherlab], virtualhost [my_vhost].
[user01@vlsr01 ~]# gem install bunny [user01@vlsr01 ~]$ mcedit send_msg.rb # utwórz nowy require "bunny" connection = Bunny.new( :hostname => "127.0.0.1", :port => 5672, :vhost => "/my_vhost", :user => "zicherlab", :pass => "TajneHasło", ) 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 [user01@vlsr01 ~]$ ruby send_msg.rb [x] Sent 'Hello RabbitMQ World!'
[3] Zainstaluj PHP na hoście odbiorcy – patrz tutaj.
[4] Zainstaluj wymagane pakiety.
[root@vlsr02 ~]# dnf install ruby-devel rpm-build gcc make
[5] To jest przykład odbierania wiadomości na Ruby.
[user01@vlsr02 ~]$ gem install bunny [user01@vlsr02 ~]$ mcedit recive_msg.rb # stwórz nowy require "bunny" Signal.trap(:INT){ puts "Exited from receiving queues." exit(0) } connection = Bunny.new( :hostname => "192.168.100.101", :port => 5672, :vhost => "/my_vhost", :user => "zicherlab", :pass => "TajneHasło", ) 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 [user01@vlsr02 ~]$ ruby recive_msg.rb [*] Waiting for messages in Hello_World. To exit press CTRL+C [x] Received Hello RabbitMQ World! # wszystko OK, wiadomość wysłana w [2] została odebrana