Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 我的rails应用程序在同时调用时会混合来自不同线程的api请求和响应_Ruby On Rails_Ruby_Ruby On Rails 5_Odoo_Odoo 12 - Fatal编程技术网

Ruby on rails 我的rails应用程序在同时调用时会混合来自不同线程的api请求和响应

Ruby on rails 我的rails应用程序在同时调用时会混合来自不同线程的api请求和响应,ruby-on-rails,ruby,ruby-on-rails-5,odoo,odoo-12,Ruby On Rails,Ruby,Ruby On Rails 5,Odoo,Odoo 12,我正在开发一个Rails应用程序,它有一个表单,可以向Odoo v12发出第一方API请求,我的所有数据都存储在那里。当用户同时提交两个表单时,如果API响应有任何延迟(只有0.2秒),服务器将开始处理另一个请求,这是预期的 但是,当响应按照它们发出的顺序返回时,rails将响应分配给具有开放连接的请求。(例如,响应1分配给请求2,响应2分配给请求1。) 检查请求ID可确认正在发生这种情况。 合作伙伴创建 根据请求启动res.partner的api调用 63f02dd4-8242-4043-9

我正在开发一个Rails应用程序,它有一个表单,可以向Odoo v12发出第一方API请求,我的所有数据都存储在那里。当用户同时提交两个表单时,如果API响应有任何延迟(只有0.2秒),服务器将开始处理另一个请求,这是预期的

但是,当响应按照它们发出的顺序返回时,rails将响应分配给具有开放连接的请求。(例如,响应1分配给请求2,响应2分配给请求1。)

检查请求ID可确认正在发生这种情况。

合作伙伴创建

根据请求启动res.partner的api调用 63f02dd4-8242-4043-9926-1e34133be2e1电话:1576616788523

[{:odoo_po=>“7643153000”, :quickbooks\u invoice\u url=>,:deal\u name=>“请删除我”, :deal\u id=>427759097,:reorder=>0,:company=>333,:sale\u contact=>337, :提交人=>98,:审批人=>119,:hubspot_id=>427759097, :发货截止日期=>“2020-01-07”;:交货截止日期=>“2020-01-13”, :编织截止日期=>“2020-01-03”,:内部注释=>”, “分销商_po”=>“14215”, “kit_数组”=>“18599615578;2155785996;”}]

销售表单。销售表单创建

根据请求启动api销售调用表单。销售表单 673fa655-907a-416f-8ed9-7c97d220fc0b电话:1576616788650

18805 673fa655-907a-416f-8ed9-7c97d220fc0b

51 ms api调用 销售表格。按要求销售表格673fa655-907a-416f-8ed9-7c97d220fc0b

9067-63f02dd4-8242-4043-9926-1e34133be2e1

针对res.partner的680 ms api调用 应请求63f02dd4-8242-4043-9926-1e34133be2e1

在上面的代码中,“9067”应该是与sale-form.sale-form请求相关联的记录id(请求id 673fa655-907a-416f-8ed9-7c97d220fc0b),而“18805”应该是与res.partner请求相关联的记录id(请求id 63f02dd4-8242-4043-9926-1e34133be2e1)


当表单提交间隔超过几秒钟时,代码运行良好,因此我认为这不是我编写的代码的问题。这是Rails/Puma/其他Gem的问题吗?或者我应该把注意力转移到奥多如何处理请求/响应上?

我知道这是一个老问题,但我们面临着类似的问题。你找到原因了吗?@luispcosta我从来没有找到过。我认为我们做的主要事情是减少API调用的数量,以限制发生这种情况的频率。如果您是自托管Odoo,我确实在基本代码中找到了一些我认为可以修复Odoo端的线程处理的东西。虽然我不是自托管(使用Odoo.sh),所以我无法验证它是否有效,我也不记得能与您共享什么,但您可以将注意力集中在那里。您使用的是Odoo的外部api还是自定义url?我们使用的是Odoo的外部api