diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-06-14 02:41:27 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-06-14 02:41:27 -0400 |
| commit | 9644064f1294a888ebc94d90c3ee13c0b58729ff (patch) | |
| tree | e79173c282d29ad54b6632ad451abac48d547033 /MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs | |
| parent | ffeee2255f463d09002e88efc78838de71e852a3 (diff) | |
| parent | 01c7dba742530e1274350bc9f8ea38a6ebc8e8f5 (diff) | |
Merge pull request #1842 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs b/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs index df6a9e654..f520316bc 100644 --- a/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs +++ b/MediaBrowser.Server.Implementations/EntryPoints/AutomaticRestartEntryPoint.cs @@ -8,6 +8,8 @@ using MediaBrowser.Model.Tasks; using System; using System.Linq; using System.Threading; +using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Model.LiveTv; namespace MediaBrowser.Server.Implementations.EntryPoints { @@ -18,16 +20,18 @@ namespace MediaBrowser.Server.Implementations.EntryPoints private readonly ITaskManager _iTaskManager; private readonly ISessionManager _sessionManager; private readonly IServerConfigurationManager _config; + private readonly ILiveTvManager _liveTvManager; private Timer _timer; - public AutomaticRestartEntryPoint(IServerApplicationHost appHost, ILogger logger, ITaskManager iTaskManager, ISessionManager sessionManager, IServerConfigurationManager config) + public AutomaticRestartEntryPoint(IServerApplicationHost appHost, ILogger logger, ITaskManager iTaskManager, ISessionManager sessionManager, IServerConfigurationManager config, ILiveTvManager liveTvManager) { _appHost = appHost; _logger = logger; _iTaskManager = iTaskManager; _sessionManager = sessionManager; _config = config; + _liveTvManager = liveTvManager; } public void Run() @@ -44,7 +48,7 @@ namespace MediaBrowser.Server.Implementations.EntryPoints if (_appHost.HasPendingRestart) { - _timer = new Timer(TimerCallback, null, TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5)); + _timer = new Timer(TimerCallback, null, TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10)); } } @@ -72,6 +76,22 @@ namespace MediaBrowser.Server.Implementations.EntryPoints return false; } + if (_liveTvManager.Services.Count == 1) + { + try + { + var timers = _liveTvManager.GetTimers(new TimerQuery(), CancellationToken.None).Result; + if (timers.Items.Any(i => i.Status == RecordingStatus.InProgress)) + { + return false; + } + } + catch (Exception ex) + { + _logger.ErrorException("Error getting timers", ex); + } + } + var now = DateTime.UtcNow; return !_sessionManager.Sessions.Any(i => (now - i.LastActivityDate).TotalMinutes < 30); |
