From 5e0f0b5392fe4538ca4d05fb266b547c59e51967 Mon Sep 17 00:00:00 2001 From: Evgeniy Pavlyuk Date: Tue, 7 Apr 2015 01:43:22 +0300 Subject: [PATCH 1/2] =?UTF-8?q?ReleaseHistory.md=20=D0=B4=D0=BE=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=86=D0=B8=D0=B5=D0=B9=20=D0=BF=D0=BE=20=D1=80?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=D0=B7=D1=83=201.2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReleaseHistory.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ReleaseHistory.md b/ReleaseHistory.md index 6773018..8e205aa 100644 --- a/ReleaseHistory.md +++ b/ReleaseHistory.md @@ -1,3 +1,9 @@ +# 1.2.0 +Удобные методы управления рабочим процессом на основе менеджера заданий стали частью API: +- (new) ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5) - усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут) +- ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5) - усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени (таймаут) +- ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5) - усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени (таймаут) + # 1.1.0 Добавлен функционал на мгновенный запуск задания вне очереди From 4c67094abe9d67dbe3a4dc6f8abca94a88af6031 Mon Sep 17 00:00:00 2001 From: Evgeniy Pavlyuk Date: Tue, 7 Apr 2015 01:45:03 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=80=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=D0=BD=20README.md,=20=D0=94=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B:=20*=20=D0=BE=D0=B1=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=82=D0=B8=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B4=D1=81=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D1=8B=20*=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80?= =?UTF-8?q?=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA=D0=B5=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=8B=20*=20=D0=B6=D0=B8?= =?UTF-8?q?=D0=B7=D0=BD=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=86=D0=B8=D0=BA?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20*=20?= =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B3=D1=80=D0=B0=D0=BC=D0=BC=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 143 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 82c9c4f..a2cdb9a 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,146 @@ Библиотека TaskManagerFor1C предназначена для создания асинхронных и параллельных алгоритмов с гарантированным выполнением в среде 1С Предприятия на базе фоновых заданий. -Цели TaskManagerFor1C: -* повышение производительности программных продуктов за счет добавления параллелелизма в программный код; -* повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями. \ No newline at end of file +## Цели TaskManagerFor1C: + +- Повышение производительности программных продуктов за счет добавления параллелелизма в программный код; +- Повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями. + +## Область применения + +- Использование параллельных вычислений в автоматизации бизнес процессов, например: + - Расчет заработной платы можно распараллелить по отдельным сотрудникам; + - Параллельное выполнение запросов в долгих отчетах/обработках; +- Процессы загрузки/выгрузки данных; +- Организация нагрузочного тестирования. + +## Настройка + +Для настройки нужно использовать обработку[^Имя обработки]: +[^Имя обработки]: Название в конфигураторе - мзУправлениеМенеджеромЗаданий, синоним - Управление менеджером заданий + +![Управление менеджером заданий](http://habrastorage.org/files/5d3/c22/ba9/5d3c22ba93ac40dba8096b5689850cfe.JPG "Настройки менеджера заданий") + +Доступные настройки: + +- Ограничение на количество исполнителей - для балансировки нагрузки на сервер 1С. Принимает значение от 0 до 9999. При значении 0 задания в работу браться не будут. +- Глубина хранения истории (дни) - если указано значение отличное от 0, тогда подсистема сама будет чистить информацию по старым выполненным заданиям оставляя последние N дней указанных в настройке. + +Запуск подсистемы, остановка и очистка очереди выполняется верхними, говорящими за себя кнопками. +В качестве индикатора работы подсистемы выступает флаг `Менеджер запущен`. + +## Жизненный цикл задания + +![Жизненный цикл задания](http://habrastorage.org/files/e6d/5cd/332/e6d5cd3327874df8a41402d446c5fa70.jpg) + +## Программный интерфейс + +#### ДобавитьЗадание(ИмяМетода, Параметры) + + Добавляет новое задание в очередь. На задания в очереди распространяется ограничение на количество одновременно работающих исполнителей. + + Параметры: + + ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры). + + Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди. + + Возвращает: + + Идентификатор задания. + +#### ДобавитьЗаданиеВнеОчереди(ИмяМетода, Параметры) + + Запускает асинхронное выполнение задания минуя очередь. + +>*На такие задания ограничение на количество исполнителей НЕ распространяется, НО квота используется* + + Параметры: + + ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры). + + Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди. + + Возвращает: + + Идентификатор задания. + +#### ПолучитьСостояниеЗадания(КлючЗадания) + + Позволяет получить текущее состояние задания. + + Параметры: + + КлючЗадания - идентификатор задания. + + Возвращает: + + Состояние задания. + +#### ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5) + + Усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени. + + Параметры: + + КлючЗадания - идентификатор задания. + + ОжидаемоеСостояние - состояние, которого хотим дождаться. + + Таймаут - максимальное время ожидания, сек. + + Возвращает: + + Истина, если состояния дождались иначе Ложь. + +#### ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5) + + Усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени. + + Параметры: + + КлючЗадания - идентификатор задания. + + ТекущееСостояние - состояние с которого хотим уйти. + + Таймаут - максимальное время ожидания, сек. + + Возвращает: + + Истина, если состояния дождались иначе Ложь. + +#### ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5) + + Усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут) + + Параметры: + + КлючиЗаданий - массив с идентификаторами заданий. + + ТекущееСостояние - состояние с которого хотим уйти. + + Таймаут - максимальное время ожидания, сек. + + Возвращает: + + Истина, если состояния дождались иначе Ложь. + +#### ОтменитьЗадание(КлючЗадания) + + Отменяет задание, если оно находится в состоянии Ожидает. + + Параметры: + + КлючЗадания - идентификатор задания. + +#### ОтменитьВсеЗаданияВОчереди() + + Отменяет все задания в состоянии Ожидает. + +#### СократитьИсториюВыполненияЗаданий(ТребуемаяГлубинаИсторииВДнях) + + Очищает информацию по старым выполненным заданиям оставляя последнее указанное количество дней. Предназначен для "ручного" управления историей выполнения заданий. + + Параметры: + + ТребуемаяГлубинаИсторииВДнях - количество дней истории, которые необходимо оставить. \ No newline at end of file