Skip to content

Commit 801a509

Browse files
committed
Merge branch 'release/1.2.0'
2 parents d93a7f3 + 4c67094 commit 801a509

File tree

4 files changed

+152
-3
lines changed

4 files changed

+152
-3
lines changed

1Cv8.cf

123 Bytes
Binary file not shown.

README.md

Lines changed: 143 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,146 @@
22

33
Библиотека TaskManagerFor1C предназначена для создания асинхронных и параллельных алгоритмов с гарантированным выполнением в среде 1С Предприятия на базе фоновых заданий.
44

5-
Цели TaskManagerFor1C:
6-
* повышение производительности программных продуктов за счет добавления параллелелизма в программный код;
7-
* повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями.
5+
## Цели TaskManagerFor1C:
6+
7+
- Повышение производительности программных продуктов за счет добавления параллелелизма в программный код;
8+
- Повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями.
9+
10+
## Область применения
11+
12+
- Использование параллельных вычислений в автоматизации бизнес процессов, например:
13+
- Расчет заработной платы можно распараллелить по отдельным сотрудникам;
14+
- Параллельное выполнение запросов в долгих отчетах/обработках;
15+
- Процессы загрузки/выгрузки данных;
16+
- Организация нагрузочного тестирования.
17+
18+
## Настройка
19+
20+
Для настройки нужно использовать обработку[^Имя обработки]:
21+
[^Имя обработки]: Название в конфигураторе - мзУправлениеМенеджеромЗаданий, синоним - Управление менеджером заданий
22+
23+
![Управление менеджером заданий](http://habrastorage.org/files/5d3/c22/ba9/5d3c22ba93ac40dba8096b5689850cfe.JPG "Настройки менеджера заданий")
24+
25+
Доступные настройки:
26+
27+
- Ограничение на количество исполнителей - для балансировки нагрузки на сервер 1С. Принимает значение от 0 до 9999. При значении 0 задания в работу браться не будут.
28+
- Глубина хранения истории (дни) - если указано значение отличное от 0, тогда подсистема сама будет чистить информацию по старым выполненным заданиям оставляя последние N дней указанных в настройке.
29+
30+
Запуск подсистемы, остановка и очистка очереди выполняется верхними, говорящими за себя кнопками.
31+
В качестве индикатора работы подсистемы выступает флаг `Менеджер запущен`.
32+
33+
## Жизненный цикл задания
34+
35+
![Жизненный цикл задания](http://habrastorage.org/files/e6d/5cd/332/e6d5cd3327874df8a41402d446c5fa70.jpg)
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+
#### ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5)
82+
83+
Усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени.
84+
85+
Параметры:
86+
87+
КлючЗадания - идентификатор задания.
88+
89+
ОжидаемоеСостояние - состояние, которого хотим дождаться.
90+
91+
Таймаут - максимальное время ожидания, сек.
92+
93+
Возвращает:
94+
95+
Истина, если состояния дождались иначе Ложь.
96+
97+
#### ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5)
98+
99+
Усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени.
100+
101+
Параметры:
102+
103+
КлючЗадания - идентификатор задания.
104+
105+
ТекущееСостояние - состояние с которого хотим уйти.
106+
107+
Таймаут - максимальное время ожидания, сек.
108+
109+
Возвращает:
110+
111+
Истина, если состояния дождались иначе Ложь.
112+
113+
#### ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5)
114+
115+
Усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут)
116+
117+
Параметры:
118+
119+
КлючиЗаданий - массив с идентификаторами заданий.
120+
121+
ТекущееСостояние - состояние с которого хотим уйти.
122+
123+
Таймаут - максимальное время ожидания, сек.
124+
125+
Возвращает:
126+
127+
Истина, если состояния дождались иначе Ложь.
128+
129+
#### ОтменитьЗадание(КлючЗадания)
130+
131+
Отменяет задание, если оно находится в состоянии Ожидает.
132+
133+
Параметры:
134+
135+
КлючЗадания - идентификатор задания.
136+
137+
#### ОтменитьВсеЗаданияВОчереди()
138+
139+
Отменяет все задания в состоянии Ожидает.
140+
141+
#### СократитьИсториюВыполненияЗаданий(ТребуемаяГлубинаИсторииВДнях)
142+
143+
Очищает информацию по старым выполненным заданиям оставляя последнее указанное количество дней. Предназначен для "ручного" управления историей выполнения заданий.
144+
145+
Параметры:
146+
147+
ТребуемаяГлубинаИсторииВДнях - количество дней истории, которые необходимо оставить.

ReleaseHistory.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# 1.2.0
2+
Удобные методы управления рабочим процессом на основе менеджера заданий стали частью API:
3+
- (new) ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5) - усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут)
4+
- ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5) - усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени (таймаут)
5+
- ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5) - усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени (таймаут)
6+
7+
# 1.1.0
8+
Добавлен функционал на мгновенный запуск задания вне очереди
9+
110
# 1.0.0
211
Реализованы программные интерфейсы:
312
- управления менеджером заданий - жизненный цикл, ограничение по количеству исполнителей, глубина хранения истории по заданиям
105 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)