2022-04-11 18:00:34 +05:00
|
|
|
|
using System;
|
2022-02-17 15:37:27 +05:00
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace AsbCloudApp.Services
|
|
|
|
|
{
|
2022-08-05 17:16:11 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Сервис выстраивает очередь из фоновых задач. Ограничивает количество одновременно выполняющихся задач.
|
|
|
|
|
/// </summary>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
public interface IBackgroundWorkerService
|
|
|
|
|
{
|
2022-08-05 17:16:11 +05:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// Проверка, есть ли задача в очереди
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id">идентификатор задачи</param>
|
|
|
|
|
/// <returns></returns>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
bool Contains(string id);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавляет в очередь задач новую задачу
|
|
|
|
|
/// </summary>
|
2022-08-05 17:16:11 +05:00
|
|
|
|
/// <param name="id">идентификатор задачи</param>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
/// <param name="func">делегат</param>
|
|
|
|
|
/// <returns>id задачи в очереди</returns>
|
|
|
|
|
string Enqueue(string id, Func<string, CancellationToken, Task> func);
|
2022-08-05 17:16:11 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавляет в очередь задач новую задачу
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="func"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
string Enqueue(Func<string, CancellationToken, Task> func);
|
2022-08-05 17:16:11 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Добавляет в очередь задач новую задачу
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id">идентификатор задачи</param>
|
|
|
|
|
/// <param name="func"></param>
|
|
|
|
|
/// <param name="onError"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
string Enqueue(string id, Func<string, CancellationToken, Task> func, Func<string, Exception, CancellationToken, Task> onError);
|
2022-08-05 17:16:11 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Пробуем удалить задачу по идентификатору
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="id"></param>
|
|
|
|
|
/// <returns></returns>
|
2022-02-17 15:37:27 +05:00
|
|
|
|
bool TryRemove(string id);
|
|
|
|
|
}
|
|
|
|
|
}
|