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结合使用。完全同意,后台工作在这里更合适。