Я использую SSH.Net для загрузки, но хочу повторить попытку SFTP-файла в случае сбоя процесса. У меня есть этот код, но я не думаю, что это лучший способ выполнить повторную попытку. Как лучше всего справиться с этим?
var exceptions = new List<Exception>();
int retryCount = 3;
for (int retry = 0; retry < retryCount; retry++)
{
try
{
var filePath = Path.Combine(path, fileName);
var client = new SftpClient("ftp.site.com", 22, "userName", "password");
client.Connect();
if (client.IsConnected)
{
var fileStream = new FileStream(filePath, FileMode.Open);
if (fileStream != null)
{
client.UploadFile(fileStream, "/fileshare/" + fileName, null);
client.Disconnect();
client.Dispose();
}
}
}
catch (Exception ex)
{
exceptions.Add(ex);
System.Threading.Thread.Sleep(10000);
}
if (exceptions.Count == 3)
{
throw exceptions[0];
}
}