问题标签 [asyncpg]

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.

0 投票
3 回答
12636 浏览

python - 使用 asyncpg 插入多行的最佳方法

我想插入多行并用asyncpg取回ID,我找到了两种方法:1:像这样生成sql

2:在for循环中使用准备好的语句

如果有 700 000 行的情况下 100 倍,我必须更喜欢哪种方式,或者有什么方法可以结合这种方法?我完全绿色,所以在我身上扔一些西红柿

0 投票
2 回答
928 浏览

python - Asyncpg 和 AWS Lambda

我正在尝试将 asyncpg 与 AWS Lambda 一起使用,并在尝试import asyncpg

我在这个答案中导入 python 依赖项,无论有无虚拟环境。

更新。发现这个repo 使用自定义编译psycopg2的东西,它适用于 AWS Lambda,但asyncpg没有找到这样的替代方案或关于编译 Lambda 友好asyncpg包的说明。

0 投票
2 回答
1185 浏览

asyncpg - 如何使用 asyncpg 返回新插入行的主键?

我想做这样的事情:

但是Connection.execute似乎除了状态之外没有返回任何东西:

https://magicstack.github.io/asyncpg/current/api/index.html?highlight=returning#asyncpg.connection.Connection.execute

问题也可以表述为:RETURNING使用 asyncpg 时如何取回语句的响应?

0 投票
1 回答
946 浏览

python - 证书验证失败的 Postgresql Heroku

我正在通过 Heroku 和 asyncpg 运行 PostgreSQL 数据库。我的网址是:postgres://user:pass@ec2-23-21-76-49.compute-1.amazonaws.com:5432/db_name

当我运行它时,我收到错误:

这个数据库 url 肯定有效,当我使用 psycopg2 时它是有效的。就在我使用 asyncpg 时,我得到了这个错误。

我试过不使用连接池,这也不起作用。手动传递用户、密码等也不起作用。

0 投票
1 回答
377 浏览

postgresql - 如何在准备好的语句游标中添加集合(列表等)参数

所以我正在使用 asyncpg 准备好的语句并执行查询。我在查询中传递位置参数。

目前,我通过了,stmt.cursor(params[0], params[1])但如果我不知道传递了多少个参数,所以想将一个列表或其他东西传递给这个方法。在这种情况下,我怎样才能做到这一点?

我当前的代码:

0 投票
1 回答
177 浏览

python-3.6 - asyncpg 中是否有 register_adapter(在 psycopg 中找到)等效函数

我们是否必须在 asyncpg 中注册适配器才能执行查询,就像在 psycopg 中一样?

http://initd.org/psycopg/docs/extensions.html#psycopg2.extensions.register_adapter

0 投票
1 回答
2045 浏览

python - 将 asyncpg 连接池与 Sanic 一起使用

我在网上清理了几个例子并想出了这个。这段代码有效,但我想知道是否有更好的方法来做到这一点?

现在在 webapp.py 中使用 pg 类

0 投票
0 回答
590 浏览

python - python异步http请求

我有一些带有 http 接口的设备,它们经常生成带有我想要解析并保存到数据库的值的无限 http 页面。我从请求开始:

我在 DB 中触发了程序,删除了所有早于 1 秒的数据,PostgreSQL 中一名工作人员的最终结果是:

这意味着每秒 384 个结果。每个设备中有 16 种不同类型的数据,所以我每秒有 384/16 = 24 个值。是合适的结果。但是我添加的工人越多,我的表现就越差:如果有 10 个工人,我的价值会少 2-3 倍。目标是拥有数百名工人和 24-25 个值/秒。接下来我尝试做的是使用aiohttp。我希望得到更好的结果。匆忙写了测试代码:

我有这个:

即异步请求的性能要差 5 倍。我卡住了。我不明白如何解决它。

更新。剖析并没有使情况更清楚。

请求: 请求配置文件 aiohttp: aiohttp 配置文件

有了请求,情况或多或少就清楚了。但是我完全不明白异步 aiohttp 有什么问题。

2018 年 5 月 16 日更新。最后我回到了多线程,我得到了我需要的东西——大量工人的稳定性能。异步调用确实不是灵丹妙药。

0 投票
1 回答
3023 浏览

python - 使用异步/等待打开/关闭数据库连接的最佳方式

在我发现的教程中,总是为每个请求打开和关闭连接,例如:

虽然这适用于单个功能,但 Web 应用程序怎么样?

IE:例如在 Tornado 中,每个 URL 都是一个类,这导致了很多类/方法。

我习惯以阻塞方式打开连接,然后使用包装器进行异步数据库调用,然后关闭连接只是为了优雅地关闭服务器,这种情况下的最佳做法是async/await什么?

0 投票
1 回答
837 浏览

python - 在 Postgresql 中保存时区时出错

尝试使用 Python 在 PostgreSQL 中保存日期,它为我的时区提供了 UTC+2,而它是 UTC+1(不要介意差异,我只是使用 Python 测试来了解时区的情况)

在 PostgreSQL 上,我得到

时区不同

这就像 postgresql 添加了夏令时,而我们在阿尔及利亚没有它?

注意:我使用asyncpg