diff options
| author | tikuf <admin@nyalindee.com> | 2014-03-25 16:09:30 +1100 |
|---|---|---|
| committer | tikuf <admin@nyalindee.com> | 2014-03-25 16:09:30 +1100 |
| commit | 520b77a098a5f3755c098636821a7ff3742a055f (patch) | |
| tree | b347c31d1333520350422c3e3a08cea292fc8093 /MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs | |
| parent | 72bd678b9736ed0cdd8afea90e7e0c91c5b9b4c9 (diff) | |
| parent | a94a98dc6c1381c177a407139769e0cad566346b (diff) | |
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs')
| -rw-r--r-- | MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs b/MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs index c143635bf..0d3f5dfcd 100644 --- a/MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs +++ b/MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs @@ -39,6 +39,8 @@ namespace MediaBrowser.Api.ScheduledTasks TaskManager = taskManager; } + private bool _lastResponseHadTasksRunning = true; + /// <summary> /// Gets the data to send. /// </summary> @@ -46,7 +48,25 @@ namespace MediaBrowser.Api.ScheduledTasks /// <returns>Task{IEnumerable{TaskInfo}}.</returns> protected override Task<IEnumerable<TaskInfo>> GetDataToSend(object state) { - return Task.FromResult(TaskManager.ScheduledTasks + var tasks = TaskManager.ScheduledTasks.ToList(); + + var anyRunning = tasks.Any(i => i.State != TaskState.Idle); + + if (anyRunning) + { + _lastResponseHadTasksRunning = true; + } + else + { + if (!_lastResponseHadTasksRunning) + { + return Task.FromResult<IEnumerable<TaskInfo>>(null); + } + + _lastResponseHadTasksRunning = false; + } + + return Task.FromResult(tasks .OrderBy(i => i.Name) .Select(ScheduledTaskHelpers.GetTaskInfo) .Where(i => !i.IsHidden)); |
