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.所有完成