Cleanup tasks

This commit is contained in:
Shadowghost
2024-09-04 17:38:10 +02:00
parent 737a1b8a37
commit 08ed0a9a5d
23 changed files with 191 additions and 258 deletions

View File

@@ -1,8 +1,7 @@
#nullable disable
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -24,51 +23,15 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// </summary>
public class ScheduledTaskWorker : IScheduledTaskWorker
{
/// <summary>
/// The options for the json Serializer.
/// </summary>
private readonly JsonSerializerOptions _jsonOptions = JsonDefaults.Options;
/// <summary>
/// Gets or sets the application paths.
/// </summary>
/// <value>The application paths.</value>
private readonly IApplicationPaths _applicationPaths;
/// <summary>
/// Gets or sets the logger.
/// </summary>
/// <value>The logger.</value>
private readonly ILogger _logger;
/// <summary>
/// Gets or sets the task manager.
/// </summary>
/// <value>The task manager.</value>
private readonly ITaskManager _taskManager;
/// <summary>
/// The _last execution result sync lock.
/// </summary>
private readonly object _lastExecutionResultSyncLock = new object();
private bool _readFromFile = false;
/// <summary>
/// The _last execution result.
/// </summary>
private readonly object _lastExecutionResultSyncLock = new();
private bool _readFromFile;
private TaskResult _lastExecutionResult;
private Task _currentTask;
/// <summary>
/// The _triggers.
/// </summary>
private Tuple<TaskTriggerInfo, ITaskTrigger>[] _triggers;
/// <summary>
/// The _id.
/// </summary>
private string _id;
/// <summary>
@@ -104,18 +67,13 @@ namespace Emby.Server.Implementations.ScheduledTasks
InitTriggerEvents();
}
/// <inheritdoc />
public event EventHandler<GenericEventArgs<double>> TaskProgress;
/// <summary>
/// Gets the scheduled task.
/// </summary>
/// <value>The scheduled task.</value>
/// <inheritdoc />
public IScheduledTask ScheduledTask { get; private set; }
/// <summary>
/// Gets the last execution result.
/// </summary>
/// <value>The last execution result.</value>
/// <inheritdoc />
public TaskResult LastExecutionResult
{
get
@@ -169,22 +127,13 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
}
/// <summary>
/// Gets the name.
/// </summary>
/// <value>The name.</value>
/// <inheritdoc />
public string Name => ScheduledTask.Name;
/// <summary>
/// Gets the description.
/// </summary>
/// <value>The description.</value>
/// <inheritdoc />
public string Description => ScheduledTask.Description;
/// <summary>
/// Gets the category.
/// </summary>
/// <value>The category.</value>
/// <inheritdoc />
public string Category => ScheduledTask.Category;
/// <summary>
@@ -199,10 +148,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
/// <value>The current execution start time.</value>
private DateTime CurrentExecutionStartTime { get; set; }
/// <summary>
/// Gets the state.
/// </summary>
/// <value>The state.</value>
/// <inheritdoc />
public TaskState State
{
get
@@ -218,10 +164,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
}
/// <summary>
/// Gets the current progress.
/// </summary>
/// <value>The current progress.</value>
/// <inheritdoc />
public double? CurrentProgress { get; private set; }
/// <summary>
@@ -247,12 +190,8 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
}
/// <summary>
/// Gets or sets the triggers that define when the task will run.
/// </summary>
/// <value>The triggers.</value>
/// <exception cref="ArgumentNullException"><c>value</c> is <c>null</c>.</exception>
public TaskTriggerInfo[] Triggers
/// <inheritdoc />
public IReadOnlyList<TaskTriggerInfo> Triggers
{
get
{
@@ -272,10 +211,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
}
/// <summary>
/// Gets the unique id.
/// </summary>
/// <value>The unique id.</value>
/// <inheritdoc />
public string Id
{
get
@@ -290,6 +226,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
ReloadTriggerEvents(true);
}
/// <inheritdoc />
public void ReloadTriggerEvents()
{
ReloadTriggerEvents(false);
@@ -529,14 +466,14 @@ namespace Emby.Server.Implementations.ScheduledTasks
}
catch
{
return new TaskTriggerInfo[]
{
new TaskTriggerInfo
return
[
new()
{
IntervalTicks = TimeSpan.FromDays(1).Ticks,
Type = TaskTriggerInfo.TriggerInterval
}
};
];
}
}
@@ -589,9 +526,7 @@ namespace Emby.Server.Implementations.ScheduledTasks
((TaskManager)_taskManager).OnTaskCompleted(this, result);
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
/// <inheritdoc />
public void Dispose()
{
Dispose(true);