mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-05 07:18:47 +01:00
removed base kernel and ikernel
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Extensions;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
@@ -49,12 +48,6 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
/// <value>The task manager.</value>
|
||||
private ITaskManager TaskManager { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the server manager.
|
||||
/// </summary>
|
||||
/// <value>The server manager.</value>
|
||||
private IServerManager ServerManager { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="ScheduledTaskWorker" /> class.
|
||||
/// </summary>
|
||||
@@ -64,7 +57,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <param name="serverManager">The server manager.</param>
|
||||
public ScheduledTaskWorker(IScheduledTask scheduledTask, IApplicationPaths applicationPaths, ITaskManager taskManager, IJsonSerializer jsonSerializer, ILogger logger, IServerManager serverManager)
|
||||
public ScheduledTaskWorker(IScheduledTask scheduledTask, IApplicationPaths applicationPaths, ITaskManager taskManager, IJsonSerializer jsonSerializer, ILogger logger)
|
||||
{
|
||||
if (scheduledTask == null)
|
||||
{
|
||||
@@ -86,17 +79,12 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
{
|
||||
throw new ArgumentNullException("logger");
|
||||
}
|
||||
if (serverManager == null)
|
||||
{
|
||||
throw new ArgumentNullException("serverManager");
|
||||
}
|
||||
|
||||
ScheduledTask = scheduledTask;
|
||||
ApplicationPaths = applicationPaths;
|
||||
TaskManager = taskManager;
|
||||
JsonSerializer = jsonSerializer;
|
||||
Logger = logger;
|
||||
ServerManager = serverManager;
|
||||
|
||||
ReloadTriggerEvents(true);
|
||||
}
|
||||
@@ -331,6 +319,8 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
|
||||
Logger.Info("Executing {0}", Name);
|
||||
|
||||
((TaskManager)TaskManager).OnTaskExecuting(ScheduledTask);
|
||||
|
||||
var progress = new Progress<double>();
|
||||
|
||||
progress.ProgressChanged += progress_ProgressChanged;
|
||||
@@ -338,8 +328,6 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
TaskCompletionStatus status;
|
||||
CurrentExecutionStartTime = DateTime.UtcNow;
|
||||
|
||||
ServerManager.SendWebSocketMessage("ScheduledTaskBeginExecute", Name);
|
||||
|
||||
try
|
||||
{
|
||||
await ExecuteTask(CurrentCancellationTokenSource.Token, progress).ConfigureAwait(false);
|
||||
@@ -517,8 +505,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
/// <param name="startTime">The start time.</param>
|
||||
/// <param name="endTime">The end time.</param>
|
||||
/// <param name="status">The status.</param>
|
||||
/// <param name="sendNotification">if set to <c>true</c> [send notification].</param>
|
||||
private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, bool sendNotification = true)
|
||||
private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status)
|
||||
{
|
||||
var elapsedTime = endTime - startTime;
|
||||
|
||||
@@ -537,10 +524,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
|
||||
LastExecutionResult = result;
|
||||
|
||||
if (sendNotification)
|
||||
{
|
||||
ServerManager.SendWebSocketMessage("ScheduledTaskEndExecute", result);
|
||||
}
|
||||
((TaskManager) TaskManager).OnTaskCompleted(ScheduledTask, result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -564,7 +548,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
|
||||
if (State == TaskState.Running)
|
||||
{
|
||||
OnTaskCompleted(CurrentExecutionStartTime, DateTime.UtcNow, TaskCompletionStatus.Aborted, false);
|
||||
OnTaskCompleted(CurrentExecutionStartTime, DateTime.UtcNow, TaskCompletionStatus.Aborted);
|
||||
}
|
||||
|
||||
if (CurrentCancellationTokenSource != null)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using System.Threading.Tasks;
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Events;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using MediaBrowser.Model.Serialization;
|
||||
@@ -15,6 +16,9 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
/// </summary>
|
||||
public class TaskManager : ITaskManager
|
||||
{
|
||||
public event EventHandler<EventArgs> TaskExecuting;
|
||||
public event EventHandler<GenericEventArgs<TaskResult>> TaskCompleted;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the list of Scheduled Tasks
|
||||
/// </summary>
|
||||
@@ -44,26 +48,18 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
/// <value>The logger.</value>
|
||||
private ILogger Logger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the server manager.
|
||||
/// </summary>
|
||||
/// <value>The server manager.</value>
|
||||
private IServerManager ServerManager { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="TaskManager" /> class.
|
||||
/// </summary>
|
||||
/// <param name="applicationPaths">The application paths.</param>
|
||||
/// <param name="jsonSerializer">The json serializer.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <param name="serverManager">The server manager.</param>
|
||||
/// <exception cref="System.ArgumentException">kernel</exception>
|
||||
public TaskManager(IApplicationPaths applicationPaths, IJsonSerializer jsonSerializer, ILogger logger, IServerManager serverManager)
|
||||
public TaskManager(IApplicationPaths applicationPaths, IJsonSerializer jsonSerializer, ILogger logger)
|
||||
{
|
||||
ApplicationPaths = applicationPaths;
|
||||
JsonSerializer = jsonSerializer;
|
||||
Logger = logger;
|
||||
ServerManager = serverManager;
|
||||
|
||||
ScheduledTasks = new IScheduledTaskWorker[] { };
|
||||
}
|
||||
@@ -75,7 +71,9 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
public void CancelIfRunningAndQueue<T>()
|
||||
where T : IScheduledTask
|
||||
{
|
||||
ScheduledTasks.First(t => t.ScheduledTask.GetType() == typeof(T)).CancelIfRunning();
|
||||
var task = ScheduledTasks.First(t => t.ScheduledTask.GetType() == typeof(T));
|
||||
((ScheduledTaskWorker)task).CancelIfRunning();
|
||||
|
||||
QueueScheduledTask<T>();
|
||||
}
|
||||
|
||||
@@ -101,7 +99,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
|
||||
QueueScheduledTask(scheduledTask);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Queues the scheduled task.
|
||||
/// </summary>
|
||||
@@ -115,7 +113,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
// If it's idle just execute immediately
|
||||
if (task.State == TaskState.Idle)
|
||||
{
|
||||
task.Execute();
|
||||
((ScheduledTaskWorker)task).Execute();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -131,31 +129,6 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when [task completed].
|
||||
/// </summary>
|
||||
/// <param name="task">The task.</param>
|
||||
public void OnTaskCompleted(IScheduledTask task)
|
||||
{
|
||||
// Execute queued tasks
|
||||
lock (_taskQueue)
|
||||
{
|
||||
var copy = _taskQueue.ToList();
|
||||
|
||||
foreach (var type in copy)
|
||||
{
|
||||
var scheduledTask = ScheduledTasks.First(t => t.GetType() == type);
|
||||
|
||||
if (scheduledTask.State == TaskState.Idle)
|
||||
{
|
||||
scheduledTask.Execute();
|
||||
|
||||
_taskQueue.Remove(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds the tasks.
|
||||
/// </summary>
|
||||
@@ -164,7 +137,7 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
{
|
||||
var myTasks = ScheduledTasks.ToList();
|
||||
|
||||
myTasks.AddRange(tasks.Select(t => new ScheduledTaskWorker(t, ApplicationPaths, this, JsonSerializer, Logger, ServerManager)));
|
||||
myTasks.AddRange(tasks.Select(t => new ScheduledTaskWorker(t, ApplicationPaths, this, JsonSerializer, Logger)));
|
||||
|
||||
ScheduledTasks = myTasks.ToArray();
|
||||
}
|
||||
@@ -189,5 +162,25 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks
|
||||
task.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
public void Cancel(IScheduledTaskWorker task)
|
||||
{
|
||||
((ScheduledTaskWorker)task).Cancel();
|
||||
}
|
||||
|
||||
public Task Execute(IScheduledTaskWorker task)
|
||||
{
|
||||
return ((ScheduledTaskWorker)task).Execute();
|
||||
}
|
||||
|
||||
internal void OnTaskExecuting(IScheduledTask task)
|
||||
{
|
||||
EventHelper.QueueEventIfNotNull(TaskExecuting, task, EventArgs.Empty, Logger);
|
||||
}
|
||||
|
||||
internal void OnTaskCompleted(IScheduledTask task, TaskResult result)
|
||||
{
|
||||
EventHelper.QueueEventIfNotNull(TaskExecuting, task, new GenericEventArgs<TaskResult> { Argument = result }, Logger);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using MediaBrowser.Common.Configuration;
|
||||
using MediaBrowser.Common.Kernel;
|
||||
using MediaBrowser.Common.ScheduledTasks;
|
||||
using MediaBrowser.Model.Logging;
|
||||
using System;
|
||||
@@ -30,25 +29,17 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks.Tasks
|
||||
/// <value>The logger.</value>
|
||||
private ILogger Logger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the kernel.
|
||||
/// </summary>
|
||||
/// <value>The kernel.</value>
|
||||
private IKernel Kernel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="SystemUpdateTask" /> class.
|
||||
/// </summary>
|
||||
/// <param name="appHost">The app host.</param>
|
||||
/// <param name="configurationManager">The configuration manager.</param>
|
||||
/// <param name="logger">The logger.</param>
|
||||
/// <param name="kernel">The kernel.</param>
|
||||
public SystemUpdateTask(IApplicationHost appHost, IConfigurationManager configurationManager, ILogger logger, IKernel kernel)
|
||||
public SystemUpdateTask(IApplicationHost appHost, IConfigurationManager configurationManager, ILogger logger)
|
||||
{
|
||||
_appHost = appHost;
|
||||
ConfigurationManager = configurationManager;
|
||||
Logger = logger;
|
||||
Kernel = kernel;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -110,8 +101,6 @@ namespace MediaBrowser.Common.Implementations.ScheduledTasks.Tasks
|
||||
|
||||
// Release the event handler
|
||||
innerProgress.ProgressChanged -= innerProgressHandler;
|
||||
|
||||
Kernel.OnApplicationUpdated(updateInfo.AvailableVersion);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user