【问题标题】:Running Activerecord asynchronously异步运行 Activerecord
【发布时间】:2012-04-15 03:07:25
【问题描述】:

我有一些工作人员从队列 (rabbitmq) 中获取数据,在工作人员内部我想使用 activerecord 异步创建记录,我当前的实现类似于:

require "rubygems"
require "amqp"
require 'eventmachine'
require 'em-http'

AMQP.start(:host => $AMQP_URL) do |connection|
  @queue ||= AMQP::Channel.new(connection).queue("results")

  @queue.subscribe do |body|              
    EventMachine::HttpRequest.new('http://someurl').post :body => {:message =>  body }    
    Record.create!(:name => body)
  end
end 

我想以异步方式运行 Record 以提高性能,这里有什么建议吗?

【问题讨论】:

  • 你能告诉我如何在这段代码中使用它吗?我整天都在尝试使用它,但没有成功

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord asynchronous


【解决方案1】:

你可能想看看delayed_job:

https://github.com/collectiveidea/delayed_job

【讨论】:

  • 这是工人,我正在寻找的排队系统是以并行方式插入查询的机制,我已经在使用 rabbitmq 而我根本没有在这里使用 rails,只是 ruby​​ 进程和 activerecords
猜你喜欢
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多