【发布时间】:2015-08-04 00:04:47
【问题描述】:
我们必须从一个表中获取大约 500 万条记录,并将它们插入到另一个具有相同表结构的表中。
我们正在使用Sidekiq和redis将要插入的记录放入队列并从队列中插入。
这是我的代码:
User_controller:
def reinsert_users
@active_users = ExportUser.all
RecreateUserWorker.perform_async(@active_users)
end
recreateuser_worker.rb:
class RecreateUserWorker
include Sidekiq::Worker
def perform(users)
begin
@user = User.new("true")
@user.recreate(users)
rescue
raise
end
end
end
'''''
User.rb :
def recreate(users)
users.each do |user|
@user = ExportUsersV2.new(user) # new table to insert
@user.save
end
end
这是我得到的错误:
WARN: {"class"=>"RecreateUserWorker", "args"=>["#<ExportUser::ActiveRecord_Relation:0xa3781b0>"], "retry"=>true, "queue"=>"default", "jid"=>"25fe4378de1bb967ff4d1e5e", "enqueued_at"=>1438605202.8414373, "error_message"=>"undefined method `each' for \"#<ExportUser::ActiveRecord_Relation:0xa3781b0>\":String", "error_class"=>"NoMethodError", "failed_at"=>1438605202.8470101, "retry_count"=>0}
我在这里错过了什么??
【问题讨论】:
标签: ruby-on-rails sinatra sidekiq