在Elixir应用程序上工作。 有一个Scraper函数,可通过Postgrex驱动程序将数据从Google Spreadsheet复制到postgres数据库。 通过Google API的连接工作正常,但该功能始终在15秒后超时。

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 / elixir开发人员,只是帮助客户安装应用程序以进行演示。 我的问题是:

  • 我怎样才能重新编译修改后的超时设置的Postgrex驱动程序?
  • 还有另一种方法可以覆盖此设置,或者完全禁用超时吗? 我试图找到替换基本上每源“15”的实例。

#1楼 票数:1

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

Postgrex.query!(pid, "AN SQL STATEMENT;", [], timeout: 50_000, pool_timeout: 40_000)

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

#2楼 票数:1

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删除所有_build并重新编译应用程序以实际应用此值。

  ask by ted.strauss translate from so

未解决问题?本站智能推荐:

1回复

如何防止麻烦的查询在Postgrex中超时?

我正在运行一个查询,并使用Postgrex将结果加载到Stream中,如下所示: 但是我收到以下错误: 由于我要执行繁琐的查询,因此运行肯定需要2950毫秒以上的时间,我想知道如何配置Postgrex以使查询花费更多时间。 我在https://hexdocs.pm/postgr
1回复

如何停止 Postgrex 进程及其 TypeServer 进程?

我有几千个数据库。 我想一个接一个地连接到它们中的每一个并发出查询。 我通过为每个人启动这样的 Postgrex 进程来做到这一点。 然后我发出Postgrex.query ,然后像这样停止它 一切似乎都很好,除了我最终有数千个Postgrex.TypeServer进程吃掉了似乎很长一段时间
1回复

(Postgrex.Error)错误58P01(undefined_file)$ libdir / postgis-2.4

我不得不重新安装现有项目使用的某些东西。 现在,当我运行SELECT语句时出现此错误: 它在抱怨PostGis。 我做了brew install postgis来重新安装它。 仍然出现错误。 $libdir中$libdir目录在哪里,以便我可以查看文件? 如何解决此错误?
1回复

如何断开Postgrex连接?

我试图弄清楚如何连接到postgres数据库,运行查询,然后断开连接。 看看Postgrex ,我建立了一个连接 然后我使用执行我的查询 但是,我怎么断开? 我想断开连接,因为我循环遍历N个数据库并对所有数据库运行相同的查询。 我尝试退出Process,例如Pr
1回复

Postgrex如何定义JSON库

我只是想在没有任何种类的ecto设置的情况下使用Postgrex,因此仅提供文档自述文件中的示例。 这是我的模块的样子: 当我运行代码时,我得到 有什么我没有正确设置的东西吗? 根据我在文档中收集的内容,我什至不需要扩展名行,因为json是默认处理的。
1回复

为什么Postgrex-Ecto抛出此not_null_violation错误?

错误 这是测试帐户变更集时遇到的错误。 看来这仅是由结构错误的数据库进行Ecto迁移引起的,但是ecto.migrate运行良好,因为当我尝试使用下面的类似变更集插入行时,Postgresql也不会引发任何错误。 Ecto迁移 migration_create_acco
1回复

尝试实现“ geo” postgrex扩展类型时出错

我下面这个教程还增加了一个postgrex扩展到config.exs与extensions领域。 但是,现在这是添加postgrex扩展名的不建议使用的方法,我们现在应该使用type字段而不是extensions名字段。 我正在按照地理库github页面上的代码添加扩展名: confi
2回复

设置事务隔离级别时的Phoenix / Elixir测试

我有一大堆看起来像这样的代码: 在我的测试套件中,我不断遇到错误: 我想知道我是从根本上做错了什么,还是我缺少测试环境。 谢谢!