我使用Ruby on Rails开发了一个应用程序,它使用Sidekiq并行运行查询。 用户可以:
提交查询(也是模型),每个查询都可以有一个或 更多实体。队列由Sidekiq处理。
或
创建实体,并调用执行计算的函数 直接(当你有100个实体时这不太实用)。
CalculationJob是我为处理每个实体的caclulations而创建的模型。完成计算后,将生成CalculationResults并将其保存在数据库中。每个实体都有__ calculationResults
当我使用任一方法只处理一个实体时,计算正确完成。但是,当我提交一个或多个由Sidekiq处理的查询时, 我遇到两个问题
a)有时候,实体的验证失败了。我会得到像这样的错误消息:
作业参数错误
CalculationJob *** / Entity / 123:ActiveRecord :: RecordInvalid:验证失败:名称不能为空,名称无效
令人惊讶的是,如果我使用控制台找到实体(通过前面提到的id),我发现一个是使用正确的属性创建的
b)有时某些特定实体的计算是错误的。如果删除保存的计算结果并再次从控制台再次尝试,我会得到正确的结果。
有没有人遇到过这种问题?这可能是什么问题?
谢谢
提前谢谢你,
的Yannick