我创建了一个HTML应用程序,该应用程序可以在" production"中使用rackup config.ru -p 3000
在本地运行。
这个应用程序通过Bunny gem与RabbitMQ通信,并在我通过Ajax访问各种端点时发布消息。
我还有两个名为init
和deinit
的方法,用于设置和销毁与RabbitMQ服务器相关的全局变量:$connection
,$channel
和$exchange
。
这些事情并不是每次都要完成的,事实上它至少会在50%的时间内崩溃RabbitMQ。
我需要的是在启动服务器时运行init
,在deinit
时运行CTRL+C
,因此这些全局变量只创建一次并可用于由应用程序的其余部分使用(跨多个请求)。
我只是不知道该怎么做。
以下是我定义方法的方法。
def init
$conn = Bunny.new(host: SETTINGS['host'])
$conn.start
$ch = $conn.create_channel
$x = $ch.default_exchange
end
def deinit
puts "\nExiting..."
$ch.close
$conn.close
end