Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Rabbit MQ(Bunny)中的消费者太多_Ruby_Rabbitmq_Rabbitmq Exchange_Bunny - Fatal编程技术网

Ruby Rabbit MQ(Bunny)中的消费者太多

Ruby Rabbit MQ(Bunny)中的消费者太多,ruby,rabbitmq,rabbitmq-exchange,bunny,Ruby,Rabbitmq,Rabbitmq Exchange,Bunny,我正在通过JMeter向我的应用程序发送大量数据 我的订阅块和发布服务器如下所示: BunnyStarter.start_bunny_components cons = BunnyStarter.queue.subscribe do |delivery_info, metadata, payload| method_calling ( payload ) cons.cancel end BunnyStarter.exchange.publ

我正在通过JMeter向我的应用程序发送大量数据

我的订阅块和发布服务器如下所示:

    BunnyStarter.start_bunny_components
    cons = BunnyStarter.queue.subscribe do |delivery_info, metadata, payload|
      method_calling ( payload )
      cons.cancel
    end

    BunnyStarter.exchange.publish(body.to_json, routing_key:  BunnyStarter.queue.name)
还有我的兔女郎课:

def self.start_bunny_components
  if @@conn.nil?

    @@conn = Bunny.new
    @@conn.start

    @@ch = @@conn.create_channel

    @@queue  = @@ch.queue("dump_probe_queue")
    @@exchange = @@ch.default_exchange
  end
end
问题是,尽管我在调用
方法
后调用
consumer.cancel
,但在我的Rabbit MQ管理员中,我仍然看到我在大约6分钟内创建了1000个消费者

这是因为我发送的速率和数据量吗


如何改进此问题?

我以前见过此问题。它创建1000个消费者的原因是,您正在为每个连接创建通道。最终,您的消费者会因此而在一段时间后关闭

创建的使用者数量不是因为数据,而是因为在使用者中,每个订阅创建一个连接

解决方案: 不要创建多个通道,只创建一个通道,并使用同一通道使用连接数。 我指的是一个连接实例和多个模型实例,这样您就可以为多个模型共享同一个连接。