You've already forked TaskManagerFor1C
mirror of
https://github.com/wizi4d/TaskManagerFor1C.git
synced 2026-04-26 20:43:27 +02:00
Merge branch 'release/1.2.0' into develop
This commit is contained in:
@@ -2,6 +2,146 @@
|
||||
|
||||
Библиотека TaskManagerFor1C предназначена для создания асинхронных и параллельных алгоритмов с гарантированным выполнением в среде 1С Предприятия на базе фоновых заданий.
|
||||
|
||||
Цели TaskManagerFor1C:
|
||||
* повышение производительности программных продуктов за счет добавления параллелелизма в программный код;
|
||||
* повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями.
|
||||
## Цели TaskManagerFor1C:
|
||||
|
||||
- Повышение производительности программных продуктов за счет добавления параллелелизма в программный код;
|
||||
- Повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями.
|
||||
|
||||
## Область применения
|
||||
|
||||
- Использование параллельных вычислений в автоматизации бизнес процессов, например:
|
||||
- Расчет заработной платы можно распараллелить по отдельным сотрудникам;
|
||||
- Параллельное выполнение запросов в долгих отчетах/обработках;
|
||||
- Процессы загрузки/выгрузки данных;
|
||||
- Организация нагрузочного тестирования.
|
||||
|
||||
## Настройка
|
||||
|
||||
Для настройки нужно использовать обработку[^Имя обработки]:
|
||||
[^Имя обработки]: Название в конфигураторе - мзУправлениеМенеджеромЗаданий, синоним - Управление менеджером заданий
|
||||
|
||||

|
||||
|
||||
Доступные настройки:
|
||||
|
||||
- Ограничение на количество исполнителей - для балансировки нагрузки на сервер 1С. Принимает значение от 0 до 9999. При значении 0 задания в работу браться не будут.
|
||||
- Глубина хранения истории (дни) - если указано значение отличное от 0, тогда подсистема сама будет чистить информацию по старым выполненным заданиям оставляя последние N дней указанных в настройке.
|
||||
|
||||
Запуск подсистемы, остановка и очистка очереди выполняется верхними, говорящими за себя кнопками.
|
||||
В качестве индикатора работы подсистемы выступает флаг `Менеджер запущен`.
|
||||
|
||||
## Жизненный цикл задания
|
||||
|
||||

|
||||
|
||||
## Программный интерфейс
|
||||
|
||||
#### ДобавитьЗадание(ИмяМетода, Параметры)
|
||||
|
||||
Добавляет новое задание в очередь. На задания в очереди распространяется ограничение на количество одновременно работающих исполнителей.
|
||||
|
||||
Параметры:
|
||||
|
||||
ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры).
|
||||
|
||||
Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Идентификатор задания.
|
||||
|
||||
#### ДобавитьЗаданиеВнеОчереди(ИмяМетода, Параметры)
|
||||
|
||||
Запускает асинхронное выполнение задания минуя очередь.
|
||||
|
||||
>*На такие задания ограничение на количество исполнителей НЕ распространяется, НО квота используется*
|
||||
|
||||
Параметры:
|
||||
|
||||
ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры).
|
||||
|
||||
Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Идентификатор задания.
|
||||
|
||||
#### ПолучитьСостояниеЗадания(КлючЗадания)
|
||||
|
||||
Позволяет получить текущее состояние задания.
|
||||
|
||||
Параметры:
|
||||
|
||||
КлючЗадания - идентификатор задания.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Состояние задания.
|
||||
|
||||
#### ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5)
|
||||
|
||||
Усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени.
|
||||
|
||||
Параметры:
|
||||
|
||||
КлючЗадания - идентификатор задания.
|
||||
|
||||
ОжидаемоеСостояние - состояние, которого хотим дождаться.
|
||||
|
||||
Таймаут - максимальное время ожидания, сек.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Истина, если состояния дождались иначе Ложь.
|
||||
|
||||
#### ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5)
|
||||
|
||||
Усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени.
|
||||
|
||||
Параметры:
|
||||
|
||||
КлючЗадания - идентификатор задания.
|
||||
|
||||
ТекущееСостояние - состояние с которого хотим уйти.
|
||||
|
||||
Таймаут - максимальное время ожидания, сек.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Истина, если состояния дождались иначе Ложь.
|
||||
|
||||
#### ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5)
|
||||
|
||||
Усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут)
|
||||
|
||||
Параметры:
|
||||
|
||||
КлючиЗаданий - массив с идентификаторами заданий.
|
||||
|
||||
ТекущееСостояние - состояние с которого хотим уйти.
|
||||
|
||||
Таймаут - максимальное время ожидания, сек.
|
||||
|
||||
Возвращает:
|
||||
|
||||
Истина, если состояния дождались иначе Ложь.
|
||||
|
||||
#### ОтменитьЗадание(КлючЗадания)
|
||||
|
||||
Отменяет задание, если оно находится в состоянии Ожидает.
|
||||
|
||||
Параметры:
|
||||
|
||||
КлючЗадания - идентификатор задания.
|
||||
|
||||
#### ОтменитьВсеЗаданияВОчереди()
|
||||
|
||||
Отменяет все задания в состоянии Ожидает.
|
||||
|
||||
#### СократитьИсториюВыполненияЗаданий(ТребуемаяГлубинаИсторииВДнях)
|
||||
|
||||
Очищает информацию по старым выполненным заданиям оставляя последнее указанное количество дней. Предназначен для "ручного" управления историей выполнения заданий.
|
||||
|
||||
Параметры:
|
||||
|
||||
ТребуемаяГлубинаИсторииВДнях - количество дней истории, которые необходимо оставить.
|
||||
@@ -1,3 +1,9 @@
|
||||
# 1.2.0
|
||||
Удобные методы управления рабочим процессом на основе менеджера заданий стали частью API:
|
||||
- (new) ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5) - усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут)
|
||||
- ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5) - усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени (таймаут)
|
||||
- ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5) - усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени (таймаут)
|
||||
|
||||
# 1.1.0
|
||||
Добавлен функционал на мгновенный запуск задания вне очереди
|
||||
|
||||
|
||||
Reference in New Issue
Block a user