Боремся с зависшими фоновыми заданиями в 1С

Возврат к списку

фоновое задание.png

Решил поделиться своим опытом в борьбе с зависшими фоновыми заданиями. В конфигурациях с большими объемами данных рациональнее использовать некоторые алгоритмы-асинхронно, в 1С эту задачу берут на себя фоновые задания. Но иногда случается так, что фоновые задания подвисают, хотя на них возложена важная работа. Для себя перепробовал много способов борьбы с зависанием: выносил работу заданий на отдельный сервер 1С, обновление платформы, общение с ТП 1С и т.д. Но самым действенным способом оказалась проверка сеансов БД через COM соединение и если дата последней активности сеанса меньше на 30 мин текущей даты, такое соединение можно завершить, проверка выполняется через планировщик заданий Windows Server.

Фикс состоит из процедуры, которая располагается в модуле внешнего соединения конфигурации 1С и vbs скрипта.

Копируем процедуру CheckScheduledTasks в модуль внешнего соединения, предварительно в коде процедуры редактируем логин и пароль администратора кластера, логин и пароль администратора БД, имя БД и IP адрес сервера 1С.

Создаем vbs скрипт следующего содержания, так же в коде редактируем IP адрес сервера 1С, логин и пароль администратора БД

После обновления модуля внешнего соединения конфигурации и создания скрипта, через планировщик заданий, задаем интервал запуска, для себя установил запуск с периодичностью в 20 минут. Принцип следующий, каждые 20 минут система запускает VBS скрипт, он выполняет процедуру из 1С, которая мониторит сеансы БД (вид приложения "фоновое задание") и если задание выполняется больше 30 минут, система закрывает соединение.

В конце статьи прикреплен архив с 1С процедурой и vbs скриптом. Желаю удачи в реализации и пусть фоновые задания никогда не зависают в ваших конфигурациях.



12.05.2017 в 00:22
0
А как же во время продаж если 1с завершит работу? как обойти такую проблему
ответная реплика
adminadmin12.05.2017 в 00:24
0
тогда копайте журнал, нужно искать проблему. Почему фоновое задание так долго выполняется.
ответная реплика
12.05.2017 в 00:58
0
1с полностью переписана, работают фоновые регламентные задания, обмен вижу часто не ходит, потому что из за долго включения ПК зависает служба, приходиться звонить на ТТ и перезагружать службы, вот и решил найти решение другое, а не перезагрузка службы(ПК на худой конец)
ответная реплика
adminadmin12.05.2017 в 01:14
0
У себя сделал так что скрипт только определенные фоновые задания может принудительно закрывать, иначе если принудительно закрыть отражение в регл. учете, это может негативно сказать на работе системы.
ответная реплика


Возврат к списку