Npgsql命令超时值;是0不确定

本文关键字:不确定 命令 超时 Npgsql | 更新日期: 2023-09-27 18:06:02

我还没有发现任何明确说明这一点的东西。如果我在npgsql中设置了连接对象的Commandtimeout值,这会让它无限期等待吗?

Npgsql命令超时值;是0不确定

是的,0是无限的。

Npgqlstate.cs包含以下代码作为context.Mediator.CommandTimeout > 0因此,如果CommandTimeout为0,Npgsql将永远等待。

internal IEnumerable<IServerResponseObject> ProcessBackendResponsesEnum(NpgsqlConnector context,
    bool cancelRequestCalled)
{
    try
    {
    // Process commandTimeout behavior.
    if ((context.Mediator.CommandTimeout > 0) &&
            (!CheckForContextSocketAvailability(context, SelectMode.SelectRead)))

请参阅postgreSQL文档:

PGCONNECT_TIMEOUT设置libpq在尝试连接到PostgreSQL服务器时等待的最大秒数。如果未设置或设置为零,libpq将无限期等待。不建议将超时设置为小于2秒。