Hirdetés

Keresés

Új hozzászólás Aktív témák

  • dqdb

    nagyúr

    válasz RedHarlow #8917 üzenetére

    Valami ilyesmi kellene neked fapados megvalósítással:

    var delayBetweenRetries = 30 * 1000;
    var maxRetries = 3;
    var retryCount = 0;
    var expectedFileCount = GetExpectedRemoteFileCount();
    var actualFileCount = 0;

    for (;;)
    {
    var fileCount = GetRemoteFileCount();
    if (fileCount > expectedFileCount)
    {
    throw new TooManyRemoteFilesException();
    }
    else if (fileCount == expectedFileCount)
    {
    break;
    }
    else if (fileCount == actualFileCount)
    {
    if (++retryCount > maxRetries)
    throw new TooManyRetriesException();
    }
    else if (fileCount > actualFileCount)
    {
    retryCount = 0;
    actualFileCount = fileCount;
    }
    else
    {
    throw new RemoteFileCountMismatchException();
    }

    Thread.Sleep(delayBetweenRetries);
    }

    Ha a távoli szerveren drága az exportálás és az SCP kapcsolat szeret megszakadni, akkor érdemes úgy megírni a GetRemoteFileCount() metódust, hogy az kezelje a kapcsolat újraépítését. És persze nem árt a fájlok számának figyelése mellett a tartalmukat is ellenőrizni később.

    Ha sokkal bonyolultabb hibatűrést megvalósító esetek is előfordulhatnak, akkor a Polly library az egyik legjobb arra a célra, hogy ne kelljen minden távoli hívásnál/lekérdezésnél 30-50 soros logikát megírni.

    [ Szerkesztve ]

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

Új hozzászólás Aktív témák