Незачем огород городить с виндовым планировщиком. Всё делается в рамках 1С. Правда только под виндой. 1Сники почему-то не сочли нужным сделать управление кластером из-под линукса.
Вот перевод код этого скрипта на язык 1С. Не проверял так как лениво.
В 1Се делаешь регламентное задание которые каждую минуту исполняет следующий код:
Процедура УбитьЗлодея()
Соединение = Новый COMОбъект("V82.COMConnector");
Агент = Соединение.ConnectAgent("tcp://ИмяСервера"); // Имя сервера
Кластер = Агент.GetClusters()[0]; // 1 кластер в сервере
Агент.Authenticate(Кластер, "АдминистраторКластера", "ПарольАдминистратора");
РабочийПроцесс = Агент.GetWorkingProcesses(Cluster)[0]; // 1 Рабочий процесс в кластере
Памъять = РабочийПроцесс.MemorySize;
Если Памъять > 12582912 Тогда // Если сожрал больше 12 ГБ - ищем гада
МассивСессий = Агент.GetSessions(Cluster).Выгрузить();
Для Каждого Сессия Из МассивСессий Цикл
ДлительностьВызоваСервераSQL = Сессия.durationCurrentDBMS // Длительность в миллисекундах
Если ДлительностьВызоваСервераSQL > 300000 Тогда
Агент.TerminateSession(Кластер, Сессия); // Если больше 5-ти минут выполняет запрос к СУБД - убиваем
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Показать
Соответственно любой может переписАть код под несколько кластеров и несколько рабочих процессов.
За публикацию плюс так как она обращает взор 1Сников на малопопулярную тему.
Ещё бы авторов платформы попинать за то что управление кластером не работает под линуксом и за то что фоновые задания не убиваются.