我有这个初始化脚本,用于使用 Bunny 设置我的 RabbitMq 连接:
require 'yaml'
config = YAML.load_file('config/rabbitmq.yml')
puts config[Rails.env]
# $bunny = Bunny.new(config[Rails.env])
$bunny = Bunny.new(:host => config[Rails.env]["host"],
:vhost => config[Rails.env]["vhost"],
:user => config[Rails.env]["user"],
:password => config[Rails.env]["password"],
)
$bunny.start
$bunny_channel = $bunny.create_channel
的内容config[Rails.env]
是:
{"<<"=>nil, "host"=>"spotted-monkey.rmq.cloudamqp.com", "user"=>"myuser", "password"=>"mypassord", "vhost"=>"myvhost"}
该Bunny.new
命令的详细语法可以正常工作。但是,当我注释掉详细块并保留以下语法时:
$bunny = Bunny.new(config[Rails.env])
我收到以下错误消息:
session.rb:296:in `rescue in start': Could not establish TCP connection to any of the configured hosts (Bunny::TCPConnectionFailedForAllHosts)
我期待它能够工作,因为这两种情况下的键都是相同的。有没有办法在不明确指定每个参数的情况下调用构造函数?
我试图"<<"=>nil
从 yaml 文件中删除该行,但行为没有改变。