1
0
mirror of https://github.com/wizi4d/TaskManagerFor1C.git synced 2026-04-01 17:50:16 +02:00
Go to file

TaskManagerFor1C

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

Цели TaskManagerFor1C:

  • Повышение производительности программных продуктов за счет добавления параллелелизма в программный код;
  • Повышение продуктивности разработчиков за счет упрощения работы по управлению заданиями.

Область применения

  • Использование параллельных вычислений в автоматизации бизнес процессов, например:
    • Расчет заработной платы можно распараллелить по отдельным сотрудникам;
    • Параллельное выполнение запросов в долгих отчетах/обработках;
  • Процессы загрузки/выгрузки данных;
  • Организация нагрузочного тестирования.

Настройка

Для настройки нужно использовать обработку1 :

Управление менеджером заданий

Доступные настройки:

  • Ограничение на количество исполнителей - для балансировки нагрузки на сервер 1С. Принимает значение от 0 до 9999. При значении 0 задания в работу браться не будут.
  • Глубина хранения истории (дни) - если указано значение отличное от 0, тогда подсистема сама будет чистить информацию по старым выполненным заданиям оставляя последние N дней указанных в настройке.

Запуск подсистемы, остановка и очистка очереди выполняется верхними, говорящими за себя кнопками.
В качестве индикатора работы подсистемы выступает флаг Менеджер запущен.

Жизненный цикл задания

Жизненный цикл задания

Программный интерфейс

ДобавитьЗадание(ИмяМетода, Параметры)

Добавляет новое задание в очередь. На задания в очереди распространяется ограничение на количество одновременно работающих исполнителей.
 
Параметры:

	ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры).
	
	Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди.

Возвращает:

	Идентификатор задания.

ДобавитьЗаданиеВнеОчереди(ИмяМетода, Параметры)

Запускает асинхронное выполнение задания минуя очередь.

На такие задания ограничение на количество исполнителей НЕ распространяется, НО квота используется

Параметры:

	ИмяМетода - точка входа для выполнения задания. Сигнатура метода должна быть с одним параметром, например, МетодЗадания(Параметры).
	
	Параметры - структура содержащая необходимые входные данные, для выполнения задания. При добавлении расширяется свойством "КлючЗадания", значением которого будет идентификатор задания в очереди.

Возвращает:

	Идентификатор задания.

ПолучитьСостояниеЗадания(КлючЗадания)

Позволяет получить текущее состояние задания.

Параметры:

	КлючЗадания - идентификатор задания.

Возвращает:

	Состояние задания.

ОжидатьСостояниеЗадания(КлючЗадания, ОжидаемоеСостояние, Таймаут = 5)

Усыпляет текущий поток до установления указанного состояния у задания либо до истечения указанного времени.

Параметры:

	КлючЗадания - идентификатор задания.

	ОжидаемоеСостояние - состояние, которого хотим дождаться.
	
	Таймаут - максимальное время ожидания, сек.

Возвращает:

	Истина, если состояния дождались иначе Ложь.

ОжидатьИзмененияСостояния(КлючЗадания, ТекущееСостояние, Таймаут = 5)

Усыпляет текущий поток до изменения состояния у задания с указанного на любое другое либо до истечения указанного времени.

Параметры:

	КлючЗадания - идентификатор задания.

	ТекущееСостояние - состояние с которого хотим уйти.
	
	Таймаут - максимальное время ожидания, сек.

Возвращает:

	Истина, если состояния дождались иначе Ложь.

ДождатьсяВыполнения(КлючиЗаданий, Таймаут = 5)

Усыпляет текущий поток до выполнения указанного списка заданий либо до истечения указанного времени (таймаут)

Параметры:

	КлючиЗаданий - массив с идентификаторами заданий.

	ТекущееСостояние - состояние с которого хотим уйти.
	
	Таймаут - максимальное время ожидания, сек.

Возвращает:

	Истина, если состояния дождались иначе Ложь.

ОтменитьЗадание(КлючЗадания)

Отменяет задание, если оно находится в состоянии Ожидает.

Параметры:

	КлючЗадания - идентификатор задания.

ОтменитьВсеЗаданияВОчереди()

Отменяет все задания в состоянии Ожидает.

СократитьИсториюВыполненияЗаданий(ТребуемаяГлубинаИсторииВДнях)

Очищает информацию по старым выполненным заданиям оставляя последнее указанное количество дней. Предназначен для "ручного" управления историей выполнения заданий.

Параметры:

	ТребуемаяГлубинаИсторииВДнях - количество дней истории, которые необходимо оставить.

  1. Название в конфигураторе - мзУправлениеМенеджеромЗаданий, синоним - Управление менеджером заданий ↩︎

Description
Инструмент для создания параллельных алгоритмов с гарантированным выполнением в среде 1С Предприятия
Readme MPL-2.0 425 KiB
1.4.5 Latest
2024-02-09 13:25:17 +02:00
Languages
1C Enterprise 99.6%
Shell 0.3%
Batchfile 0.1%