diff options
Diffstat (limited to 'Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs')
| -rw-r--r-- | Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs | 121 |
1 files changed, 60 insertions, 61 deletions
diff --git a/Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs b/Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs index 6d2a74da4..9abcd9c7b 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Triggers/DailyTrigger.cs @@ -3,85 +3,84 @@ using System.Threading; using MediaBrowser.Model.Tasks; using Microsoft.Extensions.Logging; -namespace Emby.Server.Implementations.ScheduledTasks.Triggers +namespace Emby.Server.Implementations.ScheduledTasks.Triggers; + +/// <summary> +/// Represents a task trigger that fires everyday. +/// </summary> +public sealed class DailyTrigger : ITaskTrigger, IDisposable { + private readonly TimeSpan _timeOfDay; + private Timer? _timer; + private bool _disposed; + /// <summary> - /// Represents a task trigger that fires everyday. + /// Initializes a new instance of the <see cref="DailyTrigger"/> class. /// </summary> - public sealed class DailyTrigger : ITaskTrigger, IDisposable + /// <param name="timeOfDay">The time of day to trigger the task to run.</param> + /// <param name="taskOptions">The options of this task.</param> + public DailyTrigger(TimeSpan timeOfDay, TaskOptions taskOptions) { - private readonly TimeSpan _timeOfDay; - private Timer? _timer; - private bool _disposed = false; - - /// <summary> - /// Initializes a new instance of the <see cref="DailyTrigger"/> class. - /// </summary> - /// <param name="timeofDay">The time of day to trigger the task to run.</param> - /// <param name="taskOptions">The options of this task.</param> - public DailyTrigger(TimeSpan timeofDay, TaskOptions taskOptions) - { - _timeOfDay = timeofDay; - TaskOptions = taskOptions; - } + _timeOfDay = timeOfDay; + TaskOptions = taskOptions; + } - /// <inheritdoc /> - public event EventHandler<EventArgs>? Triggered; + /// <inheritdoc /> + public event EventHandler<EventArgs>? Triggered; - /// <inheritdoc /> - public TaskOptions TaskOptions { get; } + /// <inheritdoc /> + public TaskOptions TaskOptions { get; } - /// <inheritdoc /> - public void Start(TaskResult? lastResult, ILogger logger, string taskName, bool isApplicationStartup) - { - DisposeTimer(); + /// <inheritdoc /> + public void Start(TaskResult? lastResult, ILogger logger, string taskName, bool isApplicationStartup) + { + DisposeTimer(); - var now = DateTime.Now; + var now = DateTime.Now; - var triggerDate = now.TimeOfDay > _timeOfDay ? now.Date.AddDays(1) : now.Date; - triggerDate = triggerDate.Add(_timeOfDay); + var triggerDate = now.TimeOfDay > _timeOfDay ? now.Date.AddDays(1) : now.Date; + triggerDate = triggerDate.Add(_timeOfDay); - var dueTime = triggerDate - now; + var dueTime = triggerDate - now; - logger.LogInformation("Daily trigger for {Task} set to fire at {TriggerDate:yyyy-MM-dd HH:mm:ss.fff zzz}, which is {DueTime:c} from now.", taskName, triggerDate, dueTime); + logger.LogInformation("Daily trigger for {Task} set to fire at {TriggerDate:yyyy-MM-dd HH:mm:ss.fff zzz}, which is {DueTime:c} from now.", taskName, triggerDate, dueTime); - _timer = new Timer(_ => OnTriggered(), null, dueTime, TimeSpan.FromMilliseconds(-1)); - } + _timer = new Timer(_ => OnTriggered(), null, dueTime, TimeSpan.FromMilliseconds(-1)); + } - /// <inheritdoc /> - public void Stop() - { - DisposeTimer(); - } + /// <inheritdoc /> + public void Stop() + { + DisposeTimer(); + } - /// <summary> - /// Disposes the timer. - /// </summary> - private void DisposeTimer() - { - _timer?.Dispose(); - _timer = null; - } + /// <summary> + /// Disposes the timer. + /// </summary> + private void DisposeTimer() + { + _timer?.Dispose(); + _timer = null; + } - /// <summary> - /// Called when [triggered]. - /// </summary> - private void OnTriggered() - { - Triggered?.Invoke(this, EventArgs.Empty); - } + /// <summary> + /// Called when [triggered]. + /// </summary> + private void OnTriggered() + { + Triggered?.Invoke(this, EventArgs.Empty); + } - /// <inheritdoc /> - public void Dispose() + /// <inheritdoc /> + public void Dispose() + { + if (_disposed) { - if (_disposed) - { - return; - } + return; + } - DisposeTimer(); + DisposeTimer(); - _disposed = true; - } + _disposed = true; } } |
