出于某种原因,Sidekiq在中被触发后,会向我返回0条查询记录after_create
。但是,如果process
有的sleep 1
话,它总是会给我正确的值(1条记录)。
这到底是怎么回事?
模型:
after_create :after_create
def after_create
AwardsWorker.perform_async(user_id)
end
工人:
def perform(user_id)
user = User.find(user_id)
AwardEngine.added_shows_awards(user)
end
AwardEngine:
def self.added_shows_awards(user)
count = user.followings(true).count #(true) to avoid AR caching
puts "count: #{count}" #this is mostly 0! even if the database has 1 record
end
您需要使用after_commit,如Wiki中所述:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句