update sync task

This commit is contained in:
Luke Pulverenti 2016-03-20 23:04:44 -04:00
parent 63fe0239e3
commit 52a42229cd
6 changed files with 41 additions and 13 deletions

View File

@ -170,6 +170,17 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
QueueScheduledTask<T>(new TaskExecutionOptions());
}
public void QueueIfNotRunning<T>()
where T : IScheduledTask
{
var task = ScheduledTasks.First(t => t.ScheduledTask.GetType() == typeof(T));
if (task.State != TaskState.Running)
{
QueueScheduledTask<T>(new TaskExecutionOptions());
}
}
public void Execute<T>()
where T : IScheduledTask
{

View File

@ -50,6 +50,9 @@ namespace MediaBrowser.Common.ScheduledTasks
void QueueScheduledTask<T>()
where T : IScheduledTask;
void QueueIfNotRunning<T>()
where T : IScheduledTask;
/// <summary>
/// Queues the scheduled task.
/// </summary>

View File

@ -979,12 +979,6 @@ namespace MediaBrowser.Controller.Entities
return true;
}
if (query.HasOverview.HasValue)
{
Logger.Debug("Query requires post-filtering due to HasOverview");
return true;
}
if (query.HasImdbId.HasValue)
{
Logger.Debug("Query requires post-filtering due to HasImdbId");
@ -1078,13 +1072,6 @@ namespace MediaBrowser.Controller.Entities
return true;
}
// Apply official rating filter
if (query.OfficialRatings.Length > 0)
{
Logger.Debug("Query requires post-filtering due to OfficialRatings");
return true;
}
// Apply person filter
if (query.ItemIdsFromPersonFilters != null)
{

View File

@ -2080,6 +2080,18 @@ namespace MediaBrowser.Server.Implementations.Persistence
}
}
if (query.HasOverview.HasValue)
{
if (query.HasOverview.Value)
{
whereClauses.Add("(Overview not null AND Overview<>'')");
}
else
{
whereClauses.Add("(Overview is null OR Overview='')");
}
}
if (query.HasDeadParentId.HasValue)
{
if (query.HasDeadParentId.Value)

View File

@ -641,6 +641,8 @@ namespace MediaBrowser.Server.Implementations.Sync
ReadInputAtNativeFramerate = !syncOptions.EnableFullSpeedTranscoding
}, innerProgress, cancellationToken);
_syncManager.OnConversionComplete(jobItem, job);
}
catch (OperationCanceledException)
{
@ -825,6 +827,8 @@ namespace MediaBrowser.Server.Implementations.Sync
CpuCoreLimit = syncOptions.TranscodingCpuCoreLimit
}, innerProgress, cancellationToken);
_syncManager.OnConversionComplete(jobItem, job);
}
catch (OperationCanceledException)
{

View File

@ -1325,5 +1325,16 @@ namespace MediaBrowser.Server.Implementations.Sync
return list;
}
protected internal void OnConversionComplete(SyncJobItem item, SyncJob job)
{
var syncProvider = GetSyncProvider(item, job);
if (syncProvider is AppSyncProvider)
{
return;
}
_taskManager.QueueIfNotRunning<ServerSyncScheduledTask>();
}
}
}