1

我的项目由一台有发条的机器组成,它在数据库中创建新模型。

我还在模型 after_create 中使用 perform_async 创建了一个 sidekiq 任务。

我的问题是这样的:偶尔,当sidekiq作业开始时,它会查询它所产生的模型(如果模型X创建了一个带有参数的sidekiq作业-X,sidekiq作业查询具有id X的模型)-它得到一个零!

怎么可能?我无法追踪问题是什么或影响它的因素。

在我重试工作后它成功了。- 但它是在 AFTER_CREATE 制作的,因此模型应该已经提交给数据库。

谢谢您的帮助!

4

1 回答 1

2

此问题已在FAQ wiki 页面中得到解答。使用 after_commit。

于 2016-03-09T14:40:26.600 回答