是否可以并行化ActiveRecord回调?

时间:2018-09-03 19:17:21

标签: ruby-on-rails asynchronous activerecord parallel-processing callback

我创建了一个名为create_layer_roles的方法,每次创建资源映射时都需要执行该方法,但是我不想等到该方法结束。

map.rb

class Map < ActiveRecord::Base  
  has_and_belongs_to_many :layers,
    after_add: :create_layers_roles,

  def create_layers_roles
    Thread.new do
      # A lot of inserts in DB
      ...

      # Close DB connection
      ActiveRecord::Base.connection.close
    end
  end
end

我试图并行化它,但未成功,因为创建流程等待回调完成其执行以继续执行。

是否可以在不等待回调执行的情况下继续执行流程?

谢谢。

0 个答案:

没有答案