From f68038f2cff4ac94ac5afe97b5bfb5c9e172e6ff Mon Sep 17 00:00:00 2001 From: Bond-009 Date: Mon, 15 Jul 2024 14:55:31 +0200 Subject: Run DeleteTranscodeFileTask on startup (#12239) --- .../Tasks/DeleteTranscodeFileTask.cs | 9 +++--- .../ScheduledTasks/Triggers/IntervalTrigger.cs | 32 ++++++---------------- 2 files changed, 13 insertions(+), 28 deletions(-) (limited to 'Emby.Server.Implementations') diff --git a/Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteTranscodeFileTask.cs b/Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteTranscodeFileTask.cs index 6cb06d31c..254500ccd 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteTranscodeFileTask.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Tasks/DeleteTranscodeFileTask.cs @@ -62,14 +62,15 @@ namespace Emby.Server.Implementations.ScheduledTasks.Tasks /// public bool IsLogged => true; - /// - /// Creates the triggers that define when the task will run. - /// - /// IEnumerable{BaseTaskTrigger}. + /// public IEnumerable GetDefaultTriggers() { return new[] { + new TaskTriggerInfo + { + Type = TaskTriggerInfo.TriggerStartup + }, new TaskTriggerInfo { Type = TaskTriggerInfo.TriggerInterval, diff --git a/Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs b/Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs index d65ac2e5e..9425b47d0 100644 --- a/Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs +++ b/Emby.Server.Implementations/ScheduledTasks/Triggers/IntervalTrigger.cs @@ -27,45 +27,31 @@ namespace Emby.Server.Implementations.ScheduledTasks.Triggers TaskOptions = taskOptions; } - /// - /// Occurs when [triggered]. - /// + /// public event EventHandler? Triggered; - /// - /// Gets the options of this task. - /// + /// public TaskOptions TaskOptions { get; } - /// - /// Stars waiting for the trigger action. - /// - /// The last result. - /// The logger. - /// The name of the task. - /// if set to true [is application startup]. + /// public void Start(TaskResult? lastResult, ILogger logger, string taskName, bool isApplicationStartup) { DisposeTimer(); + DateTime now = DateTime.UtcNow; DateTime triggerDate; if (lastResult is null) { // Task has never been completed before - triggerDate = DateTime.UtcNow.AddHours(1); + triggerDate = now.AddHours(1); } else { - triggerDate = new[] { lastResult.EndTimeUtc, _lastStartDate }.Max().Add(_interval); - } - - if (DateTime.UtcNow > triggerDate) - { - triggerDate = DateTime.UtcNow.AddMinutes(1); + triggerDate = new[] { lastResult.EndTimeUtc, _lastStartDate, now.AddMinutes(1) }.Max().Add(_interval); } - var dueTime = triggerDate - DateTime.UtcNow; + var dueTime = triggerDate - now; var maxDueTime = TimeSpan.FromDays(7); if (dueTime > maxDueTime) @@ -76,9 +62,7 @@ namespace Emby.Server.Implementations.ScheduledTasks.Triggers _timer = new Timer(_ => OnTriggered(), null, dueTime, TimeSpan.FromMilliseconds(-1)); } - /// - /// Stops waiting for the trigger action. - /// + /// public void Stop() { DisposeTimer(); -- cgit v1.2.3