diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-02-03 13:55:15 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-02-03 13:55:15 -0500 |
| commit | 0f88525d618f3f8c7fdc0bc515a2357dac8fee63 (patch) | |
| tree | eb33d92704f9076198ace029c01718eedf007aff /MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs | |
| parent | 7fd4b974814011d15a9c0d43226e0c6e51f6162b (diff) | |
clean up sync temp files when canceling jobs
Diffstat (limited to 'MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs index e3db46427..572ddd3c8 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncJobProcessor.cs @@ -183,7 +183,7 @@ namespace MediaBrowser.Server.Implementations.Sync job.Status = SyncJobStatus.Completed; } } - else if (pct.Equals(0)) + else if (pct.Equals(0) && jobItems.All(i => i.Status == SyncJobItemStatus.Queued)) { job.Status = SyncJobStatus.Queued; } @@ -414,7 +414,6 @@ namespace MediaBrowser.Server.Implementations.Sync } jobItem.Progress = 0; - jobItem.Status = SyncJobItemStatus.Converting; var user = _userManager.GetUserById(job.UserId); @@ -426,7 +425,7 @@ namespace MediaBrowser.Server.Implementations.Sync else if (item is Audio) { - await Sync(jobItem, (Audio)item, user, deviceProfile, enableConversion, progress, cancellationToken).ConfigureAwait(false); + await Sync(jobItem, job, (Audio)item, user, deviceProfile, enableConversion, progress, cancellationToken).ConfigureAwait(false); } else if (item is Photo) @@ -478,6 +477,7 @@ namespace MediaBrowser.Server.Implementations.Sync { // Save the job item now since conversion could take a while await _syncRepo.Update(jobItem).ConfigureAwait(false); + await UpdateJobStatus(job).ConfigureAwait(false); try { @@ -611,7 +611,7 @@ namespace MediaBrowser.Server.Implementations.Sync }; } - private async Task Sync(SyncJobItem jobItem, Audio item, User user, DeviceProfile profile, bool enableConversion, IProgress<double> progress, CancellationToken cancellationToken) + private async Task Sync(SyncJobItem jobItem, SyncJob job, Audio item, User user, DeviceProfile profile, bool enableConversion, IProgress<double> progress, CancellationToken cancellationToken) { var options = _syncManager.GetAudioOptions(jobItem); @@ -636,6 +636,7 @@ namespace MediaBrowser.Server.Implementations.Sync jobItem.Status = SyncJobItemStatus.Converting; await _syncRepo.Update(jobItem).ConfigureAwait(false); + await UpdateJobStatus(job).ConfigureAwait(false); try { @@ -710,7 +711,12 @@ namespace MediaBrowser.Server.Implementations.Sync return mediaSource.Path; } - private string GetTemporaryPath(SyncJobItem jobItem) + public string GetTemporaryPath(SyncJob job) + { + return GetTemporaryPath(job.Id); + } + + public string GetTemporaryPath(string jobId) { var basePath = _config.GetSyncOptions().TemporaryPath; @@ -719,7 +725,12 @@ namespace MediaBrowser.Server.Implementations.Sync basePath = Path.Combine(_config.CommonApplicationPaths.ProgramDataPath, "sync"); } - return Path.Combine(basePath, jobItem.JobId, jobItem.Id); + return Path.Combine(basePath, jobId); + } + + public string GetTemporaryPath(SyncJobItem jobItem) + { + return Path.Combine(GetTemporaryPath(jobItem.JobId), jobItem.Id); } private async Task<MediaSourceInfo> GetEncodedMediaSource(string path, User user, bool isVideo) |
