protected override async Task ExecuteAsync(CancellationToken stoppingToken) { var th = new Thread(async() => { WorkerLog.Instance.Information($"Starting {nameof(FileChunkExportWorker)}"); var queue = _workerQueueContainer.ToSendChunks.Reader; while (await queue.WaitToReadAsync() || !stoppingToken.IsCancellationRequested) { var chunkPackage = await queue.ReadAsync(); await _transmissionService.SendFileChunk(chunkPackage.filechunk, chunkPackage.recipient); } }); th.Start(); await Task.Delay(Timeout.Infinite); }
private async Task RetryFailedTransmissionFileChunks() { WorkerLog.Instance.Information($"Retrying to send filechunks that have failed"); var failedChunksResult = await _transmissionRepository.GetFailedFileChunkTransmission(); if (failedChunksResult.WasSuccessful) { foreach (var fc in failedChunksResult.Data) { var wasSuccessful = await _transmissionService.SendFileChunk(fc.Item1, fc.Item2); if (wasSuccessful) { await _transmissionRepository.DeleteFailedFileChunkTransmission(fc.Item1.Id, fc.Item2.Id); } } } }