aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2016-02-25 21:46:39 -0500
committerLuke <luke.pulverenti@gmail.com>2016-02-25 21:46:39 -0500
commit4871ab0e68e4c708cc87ee1ffe195fba5b51bfae (patch)
treeef1dd5ebb2e75ea9f11c4498ebc0d4141c553d49 /MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
parent6510bd0d1dfe9c54b0245319295cccb524b86a9f (diff)
parent1661c211528db1241974cb0efaf818d6d07a5d7d (diff)
Merge pull request #1499 from MediaBrowser/dev
handle recordings with null paths
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs25
1 files changed, 25 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
index 39779ecf2..03e654281 100644
--- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
+++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs
@@ -377,6 +377,9 @@ namespace MediaBrowser.Server.Implementations.Sync
{
await EnsureSyncJobItems(null, cancellationToken).ConfigureAwait(false);
+ // Look job items that are supposedly transfering, but need to be requeued because the synced files have been deleted somehow
+ await HandleDeletedSyncFiles(cancellationToken).ConfigureAwait(false);
+
// If it already has a converting status then is must have been aborted during conversion
var result = _syncManager.GetJobItems(new SyncJobItemQuery
{
@@ -389,6 +392,28 @@ namespace MediaBrowser.Server.Implementations.Sync
CleanDeadSyncFiles();
}
+ private async Task HandleDeletedSyncFiles(CancellationToken cancellationToken)
+ {
+ // Look job items that are supposedly transfering, but need to be requeued because the synced files have been deleted somehow
+ var result = _syncManager.GetJobItems(new SyncJobItemQuery
+ {
+ Statuses = new[] { SyncJobItemStatus.ReadyToTransfer, SyncJobItemStatus.Transferring },
+ AddMetadata = false
+ });
+
+ foreach (var item in result.Items)
+ {
+ cancellationToken.ThrowIfCancellationRequested();
+
+ if (string.IsNullOrWhiteSpace(item.OutputPath) || !_fileSystem.FileExists(item.OutputPath))
+ {
+ item.Status = SyncJobItemStatus.Queued;
+ await _syncManager.UpdateSyncJobItemInternal(item).ConfigureAwait(false);
+ await UpdateJobStatus(item.JobId).ConfigureAwait(false);
+ }
+ }
+ }
+
private void CleanDeadSyncFiles()
{
// TODO