问题标签 [sequel-gem]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - Sequel + ADO + Puma 不是线程查询
我们有一个网站在 Windows Server 2008 + SQLServer 2008 + Ruby + Sinatra + Sequel/Puma 上运行
我们为我们的网站开发了一个 API。当多个客户端同时请求接入点时,客户端开始收到 RequestTimeout 异常。
我调查了一下,我注意到 Puma 管理多线程很好。但是 Sequel(或 Sequel 之下的任何层)一次只处理一个查询,即使它们来自不同的客户端。
事实上,如果我启动许多 Web 服务器,每台服务器都侦听一个不同的端口,并且我为每个客户端分配一个不同的端口,则不会发生 RequestTimeout 异常。
我还不知道问题是 Sequel、ADO、ODBC、Windows、SQLServer 还是什么。 事实是我无法切换到任何其他技术(如 TinyTDS)
Bellow 是一小段带有屏幕截图的代码,您可以使用它来复制错误:
上面的代码中有 2 个接入点:
delaybyquery.json,通过加入同一个表 5 次来产生延迟。请注意,该表必须有大约 1000 行才能使查询工作非常缓慢;和
delaybycode.json,仅通过调用 ruby sleep 函数来产生延迟。
两个接入点都接收到一个 tid(tracking-id)参数,并且都在 CMD 中写入 outout,因此您可以在同一窗口中跟踪两个进程的活动,并检查哪个接入点正在阻止来自其他浏览器的传入请求。
为了测试,我在同一个 chrome 浏览器中打开了 2 个选项卡。以下是我正在执行的 2 个测试。
步骤#1:运行网络服务器
c:\source\pulqui>ruby example.app.rb -p 81 我得到下面的输出
第 2 步:按代码测试延迟
我调用了这个 URL:127.0.0.1:81/delaybycode.json?tid=123 5 秒后我调用了另一个 URL 127.0.0.1:81/delaybycode.json?tid=456 下面是输出,你可以在其中看到两个调用并行工作
第 3 步:通过查询测试延迟
我调用了这个 URL:127.0.0.1:81/delaybyquery.json?tid=123 5 秒后我调用了另一个 URL 127.0.0.1:81/delaybyquery.json?tid=456 下面是输出,你可以在其中看到电话正在工作 1 时间。对访问点的每次调用都以查询超时异常结束。
ruby - 如何在 Sequel 的 where 语句中使用 json 字段?
我有一张桌子transactions
其中请求可以包含以下数据:
{ plugin_id: string, item_src_id: string, item_dst_id: string, payload: {}}
或
{ plugin_id: string, item_id: string, payload: {}}
我可以使用纯 SQL 为某些item_id
类似的事务选择事务列表:
但是,当我将该请求与 Sequel 一起使用时,它会警告我
后续弃用警告:不推荐使用具有多个参数或第一个参数/元素是字符串的数组调用数据集过滤方法,并将在 Sequel 5 中删除。
对于该请求:
我可以Sequel.lit
在 where 操作中使用该字符串,但我的问题是 -我可以使用本机 Sequel 运算符在字段内选择 json吗?
这对我有用:
ruby - 使用用户名和密码将 gem 复制到另一个数据库
从节复制另一种用途是使用
有没有办法包含两个数据库的用户名和密码。没有运气尝试
arrays - 枚举的 Sequel 和 Postgres 数组
我有enum_cars
。
我有列表user
:own_cars: enum_cars[]
例如,当我获取用户模型和获取own_cars
字段时,我有:
我连接了
DB.extension :pg_array
和
Sequel.extension :pg_array
但这对我不起作用。我应该怎么做才能获取字段Array
?或者枚举数组是不可能的?
ruby - Sequel gem - “致命:剩余的连接槽保留用于非复制超级用户连接”
通过谷歌搜索,我知道这个错误似乎是由于连接没有正确关闭。但是,Sequel gem 自述文件所说的使用数据库的方式是使用打开连接@db = Sequel.connect('postgres://someaddress')
,然后调用各种命令。我读过一些人提到使用代码块进行连接,但这是否意味着我只需要在整个程序周围放置一个代码块?如果某处出现错误,连接是否仍会卡在打开状态?
我试过这样启用连接验证器插件:
但我仍然遇到同样的问题。
有什么想法吗?
ruby-on-rails - 续集模型属性(db 列)的 instance.attribute_name 和 instance[:attribute_name] 是否完全相同?
我使用 Rails 5.1.4、Sequel 5.9.0、Postgre、rack-mini-profiler(最新)、sequel-rails 1.0.1。
我试图弄清楚为什么我的应用程序很慢。这是我发现的。
我做了一个简单的查询来获取帖子使用
并得到〜150。
我有一部分要渲染它。这是简化的:
当我查看 rack-mini-profiler 的日志时,我看到了
请求减慢渲染,但如果我将.
方法更改为:[]
:
查询消失,NULL
渲染变得更快。(两者都是我数据库title
中body
的字段,仅此而已。)
为什么?这是我需要知道的关于续集的事情吗?在那种情况下我不应该instance.method
在未来使用,或者我错过了什么?
当我尝试来自控制台的请求时,我得到了:
第一个幻像请求是什么?如何调试和删除它?
ruby - 续集:如何将变量传递给选择块?
我需要计算选择查询中的用户数。这是我的 SQL 片段
我在里面使用它
这是我在 Sequel 上的实现,它有效
但我需要使用这样的东西
我需要在查询中使用schema
和year
变量,但续集说我
或者如果我直接将年份 ID 作为字符串传递,它会schema
以错误的方式替换变量
简化用例
在这种情况下,有什么方法可以将变量传递给 select 块?
ruby - Ruby Sequel Gem 无法查找具有不同所有者的表
我正在使用 odbc 适配器通过 Sequel Gem 连接到我公司的数据库。
DB = Sequel.odbc('myserver', :user => "USER1", :password => "1234")
我连接得很好,但我无法从属于其他用户的表中获取数据集。
当我使用 Interactive SQL 连接到数据库时,我看到了下表。
在交互式 SQL 中时。因为 user1 是超级用户,所以我完全有权对所有表执行任何操作。但是,当我尝试使用 Sequel gem 拉 table4 或 table5 时。
dataset = DB[:TABLE4].all.count
我收到以下错误。
但是,当使用相同的代码拉 TABLE1 时,2 或 3 就可以了。
dataset = DB[:TABLE1].all.count
=>999
也许是因为我没有正确查找表 4 或表 5?或者我必须以某种方式指定这些表的所有者?在 Interactive SQL 中,我必须执行 USER2.TABLE4 来识别表。
非常感谢!