Шаблон выполнения длительных операций (запуск фоновых заданий, асинхронное выполнение серверных процедур без блокировки пользовательского интерфейса)

Программирование - Инструментарий

Фоновые задания Длительные операции Параллельные задачи БСП Асинхронное выполнение

27
Шаблон для реализации задач с длительным выполнением (через фоновые задания). Реализован с помощью типового функционала БСП, пример сделан с помощью расширений.

Данные шаблоны можно использовать для реализации любых длительных задач и предоставить пользователю возможность выполнять другие свои задачи.

Для выполнения длительной операции ее нужно поместить в:

  • общий модуль;
  • модуль менеджера: справочника, документа, обработки, отчета и т.д.

Пример процедуры с длительной операцией:

 
 Пример процедуры с длительной операцией:

Новый механизм запуска фоновых заданий (ШаблонЗапускаДлительныхОпераций.cfe):

В новом шаблоне используется метод: 

 
 ДлительныеОперации.ВыполнитьВФоне()

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

  • если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
  • если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
  • если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя;
  • если выполняется процедура модуля внешней обработки или внешнего отчета.

Может применяться совместно с функцией ДлительныеОперацииКлиент.ОжидатьЗавершение.
Новый функционал присутствует в версиях БСП от 2.4.х.ххх

Старый механизм запуска фоновых заданий (ШаблонЗапускаДлительныхОпераций_УстаревшийВариант.cfe):

В старом шаблоне использует метод:

 
 ДлительныеОперации.ЗапуститьВыполнениеВФоне()

В текущих релизах БСП ( от 3.0.1.ххх) он считается устаревшим, является менее функциональным аналогом ВыполнитьВФоне, предусмотрен для обратной совместимости.

27

Скачать файлы

Наименование Файл Версия Размер
Старый шаблон выполнения длительных операций (запуск фоновых заданий):
.cfe 8,97Kb
07.01.19
1
.cfe 1.0.0.0 8,97Kb 1 Скачать
Шаблон выполнения длительных операций (запуск фоновых заданий):
.cfe 8,39Kb
07.01.19
3
.cfe 1.0.0.0 8,39Kb 3 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. badboychik 60 09.01.19 12:26 Сейчас в теме
А для внешних обработок вроде как то можно было выполнить процедуру ведь, почему в основном потоке запускается?
2. ZvoryginAn 27 10.01.19 16:37 Сейчас в теме
Да, для внешних обработок можно использовать ДлительныеОперации.ВыполнитьВФоне. Пример: https://infostart.ru/public/564617/
(1)
Оставьте свое сообщение