首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用amqp消息队列不是异步的

调用amqp消息队列不是异步的
EN

Stack Overflow用户
提问于 2013-08-03 22:37:06
回答 1查看 323关注 0票数 0

下面是我的代码:

代码语言:javascript
复制
class ParsepdfClient 
#!/usr/bin/env ruby
# encoding: utf-8

require 'amqp'
require "rubygems"
require 'mq'

  def self.test

    EventMachine.run do
        connection = AMQP.connect(:host => '127.0.0.1')
        puts "Connected to AMQP broker. Running #{AMQP::VERSION} version of the gem..."

        channel = AMQP::Channel.new(connection)
        queue = channel.queue("amqpgem.examples.helloworld", :auto_delete => true)
        exchange = channel.direct("")

        queue.subscribe do |payload|
            sleep(1.minutes)
            puts "Received a message: #{payload}. Disconnecting..."
            connection.close { EventMachine.stop }
        end

        exchange.publish "Hello, world!", :routing_key => queue.name
    end   
  end
end

我使用Rabbitmq作为rails amqp gem的代理。现在我打电话给你:

从控制器执行ParsepdfClient.test命令。

根据我的理解,我的调用不应该休眠一分钟,但它会等待一分钟,然后输出

代码语言:javascript
复制
"Received a message: Hello, world!. Disconnecting..."

然后它会执行控制器的其余代码。调用不应该是异步的吗?如果不是,我怎么才能使它异步呢?

我的意思是,它不应该在输出后执行控制器的其余代码

代码语言:javascript
复制
Connected to AMQP broker. Running #{AMQP::VERSION} version of the gem...
EN

回答 1

Stack Overflow用户

发布于 2013-09-29 06:14:37

在前辈的帮助下,我成功地在rails中实现了Rabbitmq。如果任何人有任何问题,我已经写了一个博客帖子here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18033961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档