forked from ddrilling/AsbCloudServer
doc
This commit is contained in:
parent
e434daec2e
commit
395cda4e10
@ -1,41 +0,0 @@
|
|||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace System.Collections.Generic
|
|
||||||
{
|
|
||||||
public class OrderedList<T>: IEnumerable<T>, ICollection<T>
|
|
||||||
where T : notnull
|
|
||||||
{
|
|
||||||
private readonly List<T> list = new List<T>();
|
|
||||||
|
|
||||||
private readonly Func<T, object> keySelector;
|
|
||||||
private readonly bool isDescending = false;
|
|
||||||
|
|
||||||
private IOrderedEnumerable<T> OrdredList => isDescending
|
|
||||||
? list.OrderByDescending(keySelector)
|
|
||||||
: list.OrderBy(keySelector);
|
|
||||||
|
|
||||||
public int Count => list.Count;
|
|
||||||
|
|
||||||
public bool IsReadOnly => false;
|
|
||||||
|
|
||||||
public OrderedList(Func<T, object> keySelector, bool isDescending = false)
|
|
||||||
{
|
|
||||||
this.keySelector = keySelector;
|
|
||||||
this.isDescending = isDescending;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Add(T item) => list.Add(item);
|
|
||||||
|
|
||||||
public void Clear()=> list.Clear();
|
|
||||||
|
|
||||||
public bool Contains(T item)=> list.Contains(item);
|
|
||||||
|
|
||||||
public void CopyTo(T[] array, int arrayIndex)=> list.CopyTo(array, arrayIndex);
|
|
||||||
|
|
||||||
public bool Remove(T item)=> list.Remove(item);
|
|
||||||
|
|
||||||
public IEnumerator<T> GetEnumerator() => OrdredList.GetEnumerator();
|
|
||||||
|
|
||||||
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
|
|
||||||
}
|
|
||||||
}
|
|
11
AsbCloudInfrastructure/Background/readme.md
Normal file
11
AsbCloudInfrastructure/Background/readme.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# BackgroundWorker
|
||||||
|
Класс выполнения разовой фоновой работы.
|
||||||
|
Для каждой работы создается свой scope.
|
||||||
|
|
||||||
|
# NotificationBackgroundWorker
|
||||||
|
Предназначен для различных оповещений пользователей разными способами.
|
||||||
|
Фактически это дополнительный экземпляр BackgroundWorker, чтобы оповещения не ждали завершения долгих операций из стандартного BackgroundWorker.
|
||||||
|
Не должен давать большой нагрузки БД.
|
||||||
|
|
||||||
|
# PeriodicBackgroundWorker
|
||||||
|
Класс выполнения периодической фоновой работы.
|
@ -1,12 +0,0 @@
|
|||||||
# Проблемы фонового сервиса
|
|
||||||
- Нужно состояние по загрузки сервиса и очереди работ.
|
|
||||||
- Все ли задачи укладываются в таймаут,
|
|
||||||
- Сколько свободного времени остается,
|
|
||||||
- Что делает текущая задача,
|
|
||||||
- нет управления сервисом. Для исключения его влияния на другие процессы сервера.
|
|
||||||
- отключать/включать целиком
|
|
||||||
- отключать/включать отдельную периодическую задачу
|
|
||||||
|
|
||||||
# Сделать
|
|
||||||
- Разработать dto статуса задачи
|
|
||||||
- Отказаться от периодической задачи, при добавлении в хранилище задач период будет параметром метода добавления.
|
|
Loading…
Reference in New Issue
Block a user