Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 使用Sidekiq时的计算错误_Ruby On Rails 4_Sidekiq_Invalid Argument - Fatal编程技术网

Ruby on rails 4 使用Sidekiq时的计算错误

Ruby on rails 4 使用Sidekiq时的计算错误,ruby-on-rails-4,sidekiq,invalid-argument,Ruby On Rails 4,Sidekiq,Invalid Argument,我用RubyonRails开发了一个应用程序,它使用Sidekiq并行运行查询。 用户可以: 提交查询(也是模型),每个查询可以有一个或多个 更多实体。队列由Sidekiq处理 或 创建实体,并调用执行计算的函数 直接(当您有100个实体时,这就不太实际了) CalculationJob是我创建的一个模型,用于处理每个实体的计算。计算完成后,将生成计算结果并保存在数据库中。每个实体都有一个计算结果 当我使用任何一种方法只处理一个实体时,计算都是正确的。但是,当我提交一个或多个由Sidekiq

我用RubyonRails开发了一个应用程序,它使用Sidekiq并行运行查询。 用户可以:

  • 提交查询(也是模型),每个查询可以有一个或多个 更多实体。队列由Sidekiq处理

  • 创建实体,并调用执行计算的函数 直接(当您有100个实体时,这就不太实际了)

CalculationJob是我创建的一个模型,用于处理每个实体的计算。计算完成后,将生成计算结果并保存在数据库中。每个实体都有一个计算结果

当我使用任何一种方法只处理一个实体时,计算都是正确的。但是,当我提交一个或多个由Sidekiq处理的查询时, 我遇到两个问题

a) 有时,实体的验证会失败。我会收到如下错误消息:

作业参数错误

CalculationJob***/Entity/123:ActiveRecord::RecordInvalid:验证失败:名称不能为空,名称无效

令人惊讶的是,如果我使用控制台(通过前面提到的id)定位实体,我会发现一个实体是用正确的属性创建的

b) 某些特定实体的计算有时会出错。如果删除保存的计算结果并从控制台再试一次,我会得到正确的结果

有没有人遇到过这样的问题?这里有什么问题

多谢各位

提前谢谢大家,


扬尼克

很难说,没有看到任何代码。你说得对。嗯,我已经部分地解决了这个问题。CalculationJob(实体)作为流程的一部分创建对象,这些对象与实体相关联。我发现有时候,对象的创建失败了,即使它本不应该失败。然后将作业放回队列中进行另一次尝试,然后最终成功。只有当队列中有许多其他ClassificationJob等待时,才会发生这种情况。所以我想这和sidekiq有关\n以前有人有过这样的问题吗?