Регламентные задания — 1C-WIKI.RU (1С википедия)

Регламентные задания

Материал из 1C-WIKI.RU (1С википедия)

Перейти к: навигация, поиск

Содержание

Общие сведения

Регламентные задания — механизм системы 1С:Предприятие предназначенный для выполнения прикладных задач по расписанию.

Регламентные задания представляют собой неотъемлемую часть конкретного прикладного решения и описываются на этапе конфигурирования.

РегламентныеЗаданияВУТ.PNG

Регламентному заданию необходимо назначить обработчик задания (процедура в общем модуле), который и будет выполняться. Для каждого регламентного задания может быть задано расписание, в соответствии с которым регламентое задание будет автоматически запущено на исполнение. В системе 1С:Предприятие 8 поддерживаются однократные и периодические расписания. Можно задать дату начала и окончания выполнения, дневное, недельное и месячные расписания. Расписание можно задать как на этапе конфигурирования, так и на этапе выполнения (в режиме 1С:Предприятие).

РасписаниеРегламентногоЗадания.PNG

В процессе запуска регламентное задание порождает фоновое задание, которое и выполняет реальную обработку. Регламентное задание может выполняться от имени заданного пользователя и имеет возможность перезапуска (например, в случае непредвиденного завершения работы).

В утилите администрирования клиент-серверного варианта работы автоматическое выполнение регламентных заданий может быть запрещено для конкретной информационной базы. Также имеется возможность блокировать запуск регламентных заданий при создании информационной базы на сервере из диалога запуска 1С:Предприятия.

БлокировкаРегламентныхЗаданий.PNG

Механизм регламентных заданий функционирует как в клиент-серверном, так и в файловом варианте работы, но возможности по администрированию и выполнению заданий в обоих вариантах несколько различаются.

Клиент-серверный вариант

В клиент-серверном варианте планированием выполнения заданий занимается планировщик заданий, который физически располагается в менеджере кластера.

Планировщик заданий является активным компонентом сервера, т.е. независимо от наличия клиентских соединений с сервером он может выполнять те регламентные задания, которые определены в информационных базах кластера.

Активность планировщика особенно заметна при запуске кластера, т.к. в этот момент планировщик заданий последовательно опрашивает все информационные базы на предмет наличия в них регламентных заданий. Планировщик может отложить опрос определенной информационной базы, если на информационную базу наложена блокировка соединения или блокировка регламентных заданий. Также опрос может быть отложен, если СУБД информационной базы не запущена. Если по какой-либо причине информационная база является невалидной (например, ее структура разрушена), то она игнорируется при получении регламентных заданий.

Текущий список регламентных заданий в планировщике может автоматически изменяться (например, когда создается новое или удаляется уже существующее регламентное задание). В любом случае механизм заданий обеспечивает актуальность списка регламентных заданий планировщика и его соответствие спискам регламентных заданий информационных баз кластера.

После того как начальный список регламентных заданий успешно получен, планировщик периодически проверяет, не поступили ли запросы на выполнение фоновых заданий и не нужно ли выполнить какие-либо регламентные задания в соответствии с их расписанием. Если есть задания, которые нужно выполнить, планировщик определяет наименее загруженные рабочие процессы кластера и последовательно назначает каждому из них свое задание на выполнение. Таким образом, один и тот же рабочий процесс потенциально может выполнять несколько заданий параллельно. После того как задание получено рабочим процессом, рабочий процесс устанавливает соединение с информационной базой и выполняет задание в рамках этого соединения. Поскольку рабочий процесс оптимизирован для многопользовательской работы, только первое создание соединения с информационной базой является затратной операцией. Установка последующих соединений с той же информационной базой занимает существенно меньше времени и ресурсов, т.к. большинство внутренних структур данных разделяются между соединениями одной информационной базы. После выполнения задания рабочий процесс уведомляет планировщика об успешном или неуспешном выполнении задания. В случае программного сбоя планировщик может перезапустить регламентное задание (если сбой произошел при выполнении фонового задания, то оно не будет перезапущено).

Через COM-соединение или утилиту администрирования клиент-серверного варианта работы для определенной информационной базы можно установить блокировку выполнения регламентных заданий. Блокировка может быть установлена явно (в консоли кластера в свойствах информационной базы за это отвечает флаг "Блокировка регламентных заданий включена") или неявно при установке блокировки соединений. Планировщик определяет, что блокировка регламентных заданий установлена и игнорирует такие задания при проверке необходимости запуска заданий.

В утилите администрирования клиент-серверного варианта можно также просмотреть список соединений выполняющихся в данный момент фоновых заданий определенной информационной базы кластера (в списке также могут присутствовать и другие соединения, например соединения клиентов, Web-сервисов и т.д.). Утилита позволяет пользователю с административными правами принудительно закрыть такое соединение. Однако следует различать явную отмену задания через механизм заданий и принудительное закрытие соединения задания через утилиту администрирования: принудительное закрытие соединения рассматривается планировщиком как сбой при выполнении задания и планировщик может принять решение о перезапуске такого задания. В случае явной отмены задания перезапуска не происходит и заданию устанавливается статус "Отменено".

Файловый вариант

В файловом варианте планировщик заданий должен находиться в выделенном клиенте. Это достигается вызовом функции ВыполнитьОбработкуЗаданий(). Первый вызов этой функции создает планировщика заданий в текущем процессе, а последующие выполняют актуальную обработку заданий.

Для правильной обработки заданий выделенный клиент – планировщик заданий должен периодически вызывать функцию ВыполнитьОбработкуЗаданий(), в противном случае задания выполняться не будут. В файловом варианте нет возможности явно установить блокировку выполнения заданий, однако, управляя вызовом этой функции, можно реализовать эту возможность самостоятельно.

Только один клиент может быть планировщиком заданий данной информационной базы, иначе возможны ошибки при выполнении заданий.

Если планировщик заданий не создан, то обращение к программному интерфейсу механизма заданий выдает ошибку "Менеджер заданий неактивен".

В файловом варианте задания всегда выполняются последовательно одно за другим, в отличие от клиент-серверного варианта, где несколько заданий могут выполняться параллельно в одном и том же рабочем процессе или в разных рабочих процессах и даже на разных компьютерах. Поэтому, выделенного клиента, занимающегося обработкой заданий, не рекомендуется использовать для других целей, т.к. это может негативно повлиять на производительность выполнения заданий.

Клиенты в файловом варианте не имеют прямой связи с планировщиком заданий и взаимодействуют с ним через файл обмена, который находится в каталоге информационной базы (в клиент-серверном варианте клиенты соединены с планировщиком по TCP/IP, что позволяет избежать задержек при назначении заданий на выполнение). Поэтому при обработке заданий возможны небольшие задержки, связанные с тем, что планировщик читает файл обмена и получает очередную порцию заданий на выполнение только после того, как завершит выполнение полученных ранее заданий.

Почему могут не выполняться регламентные задания:

  • Используется клиент-серверный вариант работы и в утилите настройки сервера установлена блокировка (см. выше)
  • Для файлового режима работы в настройках системы (обычно Сервис - Настройка параметров учета) должен быть указан пользователь для выполнения регламентных заданий и интервал опроса. Под этим пользователем нужно держать дополнительный запущенный сеанс 1С:Предприятие, который будет выступать в роли планировщика для запуска заданий.
  • Метод регламентного задания не должен использовать функции работы с интерфейсом.
  • Возможно используется не типовая конфигурация и в ней не был подключен обработчик ожидания для запуска заданий. Обычно это делается в процедуре ПриНачалеРаботыСистемы() модуля приложения:
Процедура ПриНачалеРаботыСистемы()
 
        ...
	Если ЭтоФайловаяИБ Тогда
 
		ПользовательДляВыполненияРеглЗаданий = Константы.ПользовательДляВыполненияРегламентныхЗаданийВФайловомВарианте.Получить();
 
		Если мТекущийПользователь = ПользовательДляВыполненияРеглЗаданий Тогда
 
			// с интервалом секунд вызываем процедуру работы с регламентными заданиями
			ПоддержкаРегламентныхЗаданиеДляФайловойВерсии();
 
			ПодключитьОбработчикОжидания("ПоддержкаРегламентныхЗаданиеДляФайловойВерсии", глЗначениеПеременной("глКоличествоСекундОпросаОбмена"));
 
		КонецЕсли;
 
	КонецЕсли;
        ...
КонецПроцедуры

Мониторинг и управление регламентными и фоновыми заданиями (Консоль заданий)

Механизм заданий имеет развитые средства мониторинга и управления, такие как:

  • Программные средства
  • Журнал регистрации
  • COM-соединение и консоль кластера
  • Консоль заданий

Программные средства могут быть использованы для создания дополнительных утилит администрирования заданий или встраивания функций администрирования в приложение. Основой программных средств являются объекты встроенного языка МенеджерФоновыхЗаданий и МенеджерРегламентныхЗаданий, которые позволяют вести поиск регламентных и фоновых заданий по определенному набору критериев (имя, ключ, состояние и т.д.), получать список выполняющихся фоновых заданий, отменять выполнение фоновых заданий, а также ожидать их завершения. Программные средства доступны из любого соединения пользователю с административными правами.

Журнал регистрации позволяет отследить выполнение фоновых заданий, когда недоступны другие средства. При запуске фонового задания в журнал регистрации записывается событие начала выполнения фонового задания. По окончании выполнения фонового задания записывается событие успешного завершения или описание ошибки, если фоновое задание выполнено с ошибкой. Кроме этого средства встроенного языка позволяют создавать в журнале регистрации дополнительные диагностические сообщения (например, количество обработанных элементов) для лучшего понимания того, что в данный момент происходит в выполняющемся фоновом задании.

COM-соединение и консоль кластера позволяют выполнять следующие действия:

  • Блокировать установку соединения (эта блокировка запрещает также и запуск регламентных заданий информационной базы)
  • Блокировать запуск регламентных заданий
  • Получать список соединений выполняющихся фоновых заданий с возможностью их принудительного закрытия администратором

Наиболее развитым средством мониторинга и управления фоновыми и регламентными заданиями является консоль заданий. Консоль заданий - это внешняя обработка, которая позволяет управлять заданиями интерактивно и демонстрирует возможности встроенного языка по мониторингу и управлению заданиями.

КонсольЗаданий.PNG


Консоль заданий может быть использована из любого соединения пользователем с административными правами и позволяет выполнять следующие функции:

  • Создание, удаление, изменение, установка нового расписания и просмотр списка регламентных заданий
  • Выполнение, отмена и мониторинг фоновых заданий
  • Автообновление списка заданий для отслеживания динамики их выполнения

Источник

Сайт фирмы 1С 1Сv8x

Личные инструменты