Ruby on rails 是否可以并行化ActiveRecord回调?

Ruby on rails 是否可以并行化ActiveRecord回调?,ruby-on-rails,asynchronous,activerecord,parallel-processing,callback,Ruby On Rails,Asynchronous,Activerecord,Parallel Processing,Callback,我创建了一个名为create\u layer\u 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 i

我创建了一个名为
create\u layer\u 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
类映射
我尝试将其并行化,但没有成功,因为创建流等待回调完成其继续执行

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


谢谢。

我认为您已经超出了模型回调是正确工具的范围。我会考虑将服务对象与ActiveJob结合使用。完全同意,后台工作在这里更合适。