timeout - Elixir:解释 DBConnection queue_target 和 queue_interval
问题描述
我正在阅读DBConnection 文档。而且我不太明白以下引用:
我们的目标是最多等待 :queue_target 连接。如果在 :queue_interval 期间检出的所有连接都超过 :queue_target,那么我们将 :queue_target 加倍。如果签出连接的时间比新目标要长,那么我们就开始丢弃消息。
你能用例子解释一下吗?
- 在我的应用程序中,我有非常庞大的操作,由周期性工作人员执行。我希望它有 1 分钟的超时时间,或者根本没有超时时间。我应该避免哪一个
queue_target
:queue_interval
Elixir.DBConnection.ConnectionError',message => <<"tcp recv: closed (the connection was closed by the pool, possibly due to a timeout or because the pool has been terminated)"
- 在正常情况下,我希望队列超时为 5 秒。我怎么能用 and 实现这
queue_target
一点queue_interval
?
解决方案
您所指的超时是使用:timeout
执行函数中的选项(即execute/4
)设置的,:queue_target
并且:queue_interval
仅用于影响池开始新请求的能力(对于从池中签出连接的请求),而不是已经签出的请求连接并且已经在处理中。
请记住,在 a 期间检查连接的所有尝试都:queue_interval
必须花费比:queue_target
这些值影响任何东西更长的时间。通常,您会测试不同的值并监控数据库跟上的能力,以便为您的环境找到最佳值。
推荐阅读
- api - 如何使用 ASP.NetCore WebAPI 登录 Blazor WebAssembly?
- visual-studio-code - 用于 VSCode 的 ESLint 插件不会对符号链接目录中的文件提供 IDE 反馈
- javascript - 将带有 XMLHttpRequest 的 Javascript FormData 提交到 WebForms Web API 控制器类 2.1 引发不受支持的媒体类型
- amazon-web-services - 如何在 ElasticBeanstalk Cloudformation 模板中为 IAM 用户提供对 ECR 的访问权限?
- python - 将 2 个浮点数列表加在一起
- blazor - 在 B2C 中更改密码
- https - 尝试在骆驼 2.x 中使用 netty4-http 作为 https 安全客户端
- kong - Kong 找不到自定义插件
- python - TypeError:获取参数 None 的类型无效
会话运行 - ios - 如何在 iOS 中实时从磁盘读取视频文件