Files
duplicati/Duplicati.Library.RestAPI/Abstractions/IScheduler.cs
T

45 lines
1.4 KiB
C#
Raw Normal View History

2024-03-15 16:51:01 +01:00
using System;
using System.Collections.Generic;
using Duplicati.Library.Utility;
using Duplicati.Server;
using Duplicati.Server.Serialization.Interface;
namespace Duplicati.WebserverCore.Abstractions;
public interface IScheduler
{
/// <summary>
/// Initializes scheduler
/// </summary>
/// <param name="worker">The worker thread</param>
void Init(WorkerThread<Runner.IRunnerData> worker);
IList<Tuple<long, string>> GetSchedulerQueueIds();
/// <summary>
/// Terminates the thread. Any items still in queue will be removed
/// </summary>
/// <param name="wait">True if the call should block until the thread has exited, false otherwise</param>
void Terminate(bool wait);
/// <summary>
2024-06-07 15:56:43 +02:00
/// Subscribes to the event that is triggered when the schedule changes
2024-03-15 16:51:01 +01:00
/// </summary>
2024-06-07 15:56:43 +02:00
void SubScribeToNewSchedule(Action handler);
2024-03-15 16:51:01 +01:00
/// <summary>
/// A snapshot copy of the current schedule list
/// </summary>
List<KeyValuePair<DateTime, ISchedule>> Schedule { get; }
/// <summary>
/// A snapshot copy of the current worker queue, that is items that are scheduled, but waiting for execution
/// </summary>
List<Runner.IRunnerData> WorkerQueue { get; }
/// <summary>
/// Forces the scheduler to re-evaluate the order.
/// Call this method if something changes
/// </summary>
void Reschedule();
}