【发布时间】:2015-11-09 07:06:48
【问题描述】:
我在创建记录后使用 sidekiq 运行一些工作。当作业尝试使用创建的 ID 查找记录时,会出现随机情况,它会引发 RecordNotFound。这怎么可能?
class Person
def self.test_create
p = Person.create(
name: 'test'
)
p.run_on_sidekiq
end
def run_on_sidekiq
PersonJob.perform_async(self.id)
end
end
# Sidekiq runs on other server.
class PersonJob
def perform(id)
person = Person.find(id) # sometimes raises RecordNotFound!
# ...
# do something
# ...
end
end
编辑:根据Alexei 的回答,这个案例与 Sidekiq 更相关。编辑问题以添加有关 Sidekiq 使用的更多详细信息。
【问题讨论】:
-
您找到解决方案了吗?我遇到了同样的问题!我将 ID 传递给 Sidekiq 工作人员,并且该 ID 确实适用于工作人员外部的查询,而不是工作人员内部的查询。
标签: mysql ruby-on-rails ruby ruby-on-rails-4 sidekiq