我还没有找到任何明确说明这一点的东西。如果我在npgsql中为连接对象设置Commandtimeout值,是否会将其设置为无限期等待?
答案 0 :(得分:4)
是的,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)))
答案 1 :(得分:-2)
PGCONNECT_TIMEOUT设置libpq在尝试连接PostgreSQL服务器时将等待的最大秒数。如果未设置或设置为零,libpq将无限期地等待。建议不要将超时设置为小于2秒。