1
我正在使用與軌道的太陽黑子。 我知道太陽黑子將使用after_commit
鉤子重新索引... 但如果after_commit
失敗,事務回滾,我想要保存的Account(ActiveRecord::Base)
被刪除。如何異步調用after_commit(由太陽黑子注入)
我想使用sidekiq,perform_async
來調用after_commit
鉤子,但不知道我該怎麼做。
有什麼建議嗎?
我正在使用與軌道的太陽黑子。 我知道太陽黑子將使用after_commit
鉤子重新索引... 但如果after_commit
失敗,事務回滾,我想要保存的Account(ActiveRecord::Base)
被刪除。如何異步調用after_commit(由太陽黑子注入)
我想使用sidekiq,perform_async
來調用after_commit
鉤子,但不知道我該怎麼做。
有什麼建議嗎?
module Reindex
extend ActiveSupport::Concern
def async_reindex
AsyncIndexJob.perform_later(self.class.to_s, self.reload.id)
end
included do
after_save :async_reindex
end
end
class AsyncIndexJob < ActiveJob::Base
queue_as :index
def perform(*args)
obj = args[0].constantize.find_by_id(args[1])
if obj
Sunspot.index obj
Sunspot.commit
end
end
end
1.include重新索引模塊中的ActiveRecord ::基地
2.設置:auto_index中=>假
3.所有完成