sql >> Database >  >> NoSQL >> MongoDB

C# MongoDB-stuurprogramma negeert time-outopties

Er is een JIRA-ticket CSHARP-1018 om dit probleem te volgen. In principe negeert het stuurprogramma de time-outoptie wanneer de machine niet toegankelijk is. Time-out optie wordt genegeerd als de machine is uitgeschakeld of niet toegankelijk is.

Raadpleeg het JIRA-ticket om de voortgang van dit probleem te volgen.

Zie de tijdelijke oplossing die is gepost op CSHARP-1231 voor een manier waarop de ServerSelectionTimeout kan worden ingesteld in de huidige 2.0.0-versie van het stuurprogramma als u die benadering verkiest boven het gebruik van kortere time-outs voor specifieke bewerkingen.

Als u de nieuwe 2.0 async API gebruikt, kunt u een annuleringstoken gebruiken om uw eigen time-out toe te passen op de algehele bewerking.

Dus ik zou de annuleringstokenbenadering in de vorige opmerking aanbevelen. Het gebruik van korte time-outs voor serverselectie kan leiden tot valse uitzonderingen tijdens verkiezing van replicasets als de time-out voor serverselectie korter is dan de tijd die nodig is om een ​​verkiezing te voltooien.

Je kunt zoiets als dit schrijven:

var startTime = DateTime.UtcNow;
try
{
    using (var timeoutCancellationTokenSource = new CancellationTokenSource(TimeSpan.FromMilliseconds(500)))
    {
        await collection.Find("{ _id : 1 }").ToListAsync(timeoutCancellationTokenSource.Token);
    }
}
catch (OperationCanceledException ex)
{
    var endTime = DateTime.UtcNow;
    var elapsed = endTime - startTime;
    Console.WriteLine("Operation was cancelled after {0} seconds.", elapsed.TotalSeconds);
}

In dit voorbeeld, hoewel de ServerSelectionTimeout is nog steeds de standaardwaarde van 30 seconden, deze specifieke bewerking wordt na slechts 500 milliseconden geannuleerd (ongeveer, annuleren kan soms iets langer duren).



  1. Fout:Kan geen verbinding maken met Redis op redis:6379:Naam of service niet bekend

  2. Redis Stack Exchange hoe sleutels te verwijderen of op te halen volgens patroon

  3. Eenvoudige inlogpagina in nodejs met express en paspoort met mongodb

  4. Strapi:debug ⛔️ Server kon niet goed starten