aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs
diff options
context:
space:
mode:
authortikuf <admin@nyalindee.com>2014-03-25 16:09:30 +1100
committertikuf <admin@nyalindee.com>2014-03-25 16:09:30 +1100
commit520b77a098a5f3755c098636821a7ff3742a055f (patch)
treeb347c31d1333520350422c3e3a08cea292fc8093 /MediaBrowser.Api/ScheduledTasks/ScheduledTasksWebSocketListener.cs
parent72bd678b9736ed0cdd8afea90e7e0c91c5b9b4c9 (diff)
parenta94a98dc6c1381c177a407139769e0cad566346b (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.cs22
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));