首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何覆盖或禁用Postgrex超时设置:15秒?

如何覆盖或禁用Postgrex超时设置:15秒?
EN

Stack Overflow用户
提问于 2018-10-12 14:30:51
回答 2查看 1K关注 0票数 0

开发一款灵丹妙药应用。有一个刮板功能,它通过Postgrex驱动程序将数据从Google电子表格复制到postgres数据库。通过Google的连接可以正常工作,但是函数总是在15秒后超时。

代码语言:javascript
复制
01:48:36.654 [info] Running MyApp.Endpoint with Cowboy using http://localhost:80
Interactive Elixir (1.6.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Scraper.update
542
iex(2)> 01:48:55.889 [error] Postgrex.Protocol (#PID<0.324.0>) disconnected: ** (DBConnection.ConnectionError) owner #PID<0.445.0> timed out because it owned the connection for longer than 15000ms

我尝试在源代码中的任何地方更改15_000 ms超时设置,但该设置似乎已被编译为二进制设置。我不是erlang/长生不老药开发人员,我只是帮助客户端安装这个应用程序,目的是为了降级。我的问题是:

  • 如何使用修改的超时设置重新编译Postgrex驱动程序?
  • 是否有其他方法覆盖此设置,或完全禁用超时?我已经尝试过查找-基本上每一个实例的"15“在源代码中替换。
EN

回答 2

Stack Overflow用户

发布于 2018-10-12 16:22:38

在使用postgrex发出查询时,最后一个参数可以是一个关键字选项列表。

代码语言:javascript
复制
Postgrex.query!(pid, "AN SQL STATEMENT;", [], timeout: 50_000, pool_timeout: 40_000)

https://hexdocs.pm/postgrex/Postgrex.html#query/4

票数 1
EN

Stack Overflow用户

发布于 2018-10-13 04:18:35

代码语言:javascript
复制
config :my_app, MyApp.Repo,
  adapter: Ecto.Adapters.Postgres,
  username: "postgres",
  password: "postgres",
  database: "my_app_dev",
  hostname: "localhost",
  timeout: 600_000,
  ownership_timeout: 600_000,
  pool_timeout: 600_000

看看timeoutownership_timeout。这些值设置为600秒。而且可能不需要其中任何一种。

另外,我想说的是,有一次,我不得不从_build中删除所有内容,并重新编译一个应用程序,以便实际应用这个值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52781738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档