繁体   English   中英

connect_timeout 是通过 Peewee 的 playhouse.db_url.connect 获取连接的有效 URL 参数吗?

[英]Is connect_timeout a valid URL parameter acquiring a connection via Peewee's playhouse.db_url.connect?

我将 Peewee 用作 ORM 并使用Playhouse 扩展 db_url.connect连接到 Postgres 数据库(psycopg2)。 我的 URL 是香草postgresql://username:pass@host:port/dbname?options=...所以目前不使用池或任何先进的东西。

有时当我调用connect时,它会挂起很长时间并且不会回来。 因此,我将参数&connect_timeout=3附加到我的数据库 URL 中,这意味着尝试最多 3 秒并通过超时快速失败,而不是永远挂起。 但是,我不确定 Peewee/Playhouse/Psycopg2 是否支持这个论点......有人可以确认吗?

此外,我在哪里可以找到 Peewee/Playhouse/Psycopg2 支持的所有 URL 参数?

psycopg2 doc 依次链接到支持参数的 libpq 列表:

https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS

peewee 和 psycopg2 都支持connect_timeout

>>> from playhouse.db_url import *
>>> db = connect('postgresql://../peewee_test?connect_timeout=3')
>>> conn = db.connection()
>>> conn.get_dsn_parameters()
{'user': 'postgres',
 'passfile': '...',
 'channel_binding': 'prefer',
 'connect_timeout': '3',  # Our connect timeout
 'dbname': 'peewee_test',
 'host': 'localhost',
 'port': '5432',
 ...}

Peewee 将参数(包括connect_timeout等任意参数)传递回 DB-API Connection class 的构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM