/
IJobScheduler.cs
115 lines (92 loc) · 4.74 KB
/
IJobScheduler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using InfinniPlatform.Dynamic;
namespace InfinniPlatform.Scheduler
{
/// <summary>
/// Планировщик заданий.
/// </summary>
public interface IJobScheduler
{
/// <summary>
/// Определяет, запущено ли планирование заданий.
/// </summary>
Task<bool> IsStarted();
/// <summary>
/// Позволяет сделать выборку для определения статуса заданий.
/// </summary>
/// <typeparam name="TResult">Тип результата.</typeparam>
/// <param name="selector">Функция для выборки результата.</param>
Task<TResult> GetStatus<TResult>(Func<IEnumerable<IJobStatus>, TResult> selector);
/// <summary>
/// Добавляет или обновляет задание.
/// </summary>
/// <param name="jobInfo">Информация о задании.</param>
Task AddOrUpdateJob(IJobInfo jobInfo);
/// <summary>
/// Добавляет или обновляет список заданий.
/// </summary>
/// <param name="jobInfos">Список с информацией о заданиях.</param>
Task AddOrUpdateJobs(IEnumerable<IJobInfo> jobInfos);
/// <summary>
/// Удаляет указанное задание.
/// </summary>
/// <param name="jobId">Уникальный идентификатор задания.</param>
Task DeleteJob(string jobId);
/// <summary>
/// Удаляет указанные задания.
/// </summary>
/// <param name="jobIds">Список с уникальными идентификаторами заданий.</param>
Task DeleteJobs(IEnumerable<string> jobIds);
/// <summary>
/// Удаляет все задания.
/// </summary>
Task DeleteAllJobs();
/// <summary>
/// Приостанавливает планирование указанного задания.
/// </summary>
/// <param name="jobId">Уникальный идентификатор задания.</param>
Task PauseJob(string jobId);
/// <summary>
/// Приостанавливает планирование указанных заданий.
/// </summary>
/// <param name="jobIds">Список с уникальными идентификаторами заданий.</param>
Task PauseJobs(IEnumerable<string> jobIds);
/// <summary>
/// Приостанавливает планирование всех заданий.
/// </summary>
Task PauseAllJobs();
/// <summary>
/// Возобновляет планирование указанного задания.
/// </summary>
/// <param name="jobId">Уникальный идентификатор задания.</param>
Task ResumeJob(string jobId);
/// <summary>
/// Возобновляет планирование указанных заданий.
/// </summary>
/// <param name="jobIds">Список с уникальными идентификаторами заданий.</param>
Task ResumeJobs(IEnumerable<string> jobIds);
/// <summary>
/// Возобновляет планирование всех заданий.
/// </summary>
Task ResumeAllJobs();
/// <summary>
/// Вызывает досрочное выполнение указанного задания.
/// </summary>
/// <param name="jobId">Уникальный идентификатор задания.</param>
/// <param name="data">Данные для выполнения задания.</param>
Task TriggerJob(string jobId, DynamicDocument data = null);
/// <summary>
/// Вызывает досрочное выполнение указанных заданий.
/// </summary>
/// <param name="jobIds">Список с уникальными идентификаторами заданий.</param>
/// <param name="data">Данные для выполнения заданий.</param>
Task TriggerJobs(IEnumerable<string> jobIds, DynamicDocument data = null);
/// <summary>
/// Вызывает досрочное выполнение всех заданий.
/// </summary>
/// <param name="data">Данные для выполнения заданий.</param>
Task TriggerAllJob(DynamicDocument data = null);
}
}