Отрубаем зависшие на сервере процессы

28.07.20

Разработка - Разработка внешних компонент

Вы любите COM объекты? Я их просто обожаю! Практически все, чего не может 1С, можно доделать ими. Но есть у них небольшой косячок: иногда они зависают и висят, пока не отрубишь их через диспетчер задач или до перезагрузки, жрут память и в конце концов перестают запускаться. Что делать? Рубить!

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Отрубание зависших процессов (внешняя обработка)
.epf 10,55Kb ver:1.1
9 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Идея: С определенной периодичностью (например 15 минут) проверять список запущенных процессов, запоминать их PID(идентификатор процесса). Если по прошествии периода при повторном сканировании PID все ещё присутствует - значит процесс завис и пора его рубить.

Реализация: Для реализации этой идеи есть в Windows 2 функции: tasklist и taskkill. Первая - выводит список запущенных процессов, вторая - их убивает. С tasklist все непросто: он умеет выводить результат в файл, но через WScript почему-то этого не делает. Зато можно написать батник и запускать его. Для хранения батника и файла со списком запущенных приложений можно использовать папку Мои документы (чтобы точно доступ был). Итого получается батник с такой командой: tasklist /FO CSV > "%userprofile%\Documents\Process.txt" . CSV - чтобы читать было удобнее. Для хранения старого списка можно использовать этот же файл. То есть процесс выглядит так: Читаем ранее выгруженный список процессов, перезаписываем новый, сравниваем их, если есть повторяющиеся, делаем им "taskkill /F /PID %1 /T" по идентификатору.

В прикрепленной обработке это реализовано. Батник вставляется сам, для процессов выставлен фильтр(прописан в модуле объекта), пропускающий только excel.exe,winword.exe. Для отладки есть форма, выводящая список запущенных процессов чтобы проверить что у 1С достаточно прав на такие махинации. Обработку можно добавить как внешнюю и запускать по расписанию. Тестировалось на 8.3.9.1818.

Вступайте в нашу телеграмм-группу Инфостарт

taskkill tasklist COM объект объекты диспетчер задач Windows Word Excel зависает

См. также

Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

5000 руб.

12.05.2020    31208    142    100    

98

Разработка внешних компонент Телефония, SIP Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

5160 руб.

04.05.2018    49296    126    68    

70

Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

5000 руб.

17.09.2018    38768    116    128    

119

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    4368    bayselonarrend    14    

52

Разработка внешних компонент Программист 1С v8.3 Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    8277    kovalevdmv    27    

82

Разработка внешних компонент Программист 1С v8.3 Бесплатно (free)

А давайте запилим 8.3.26 до релиза, или оповещение с сервера...

19.02.2024    8540    starik-2005    38    

60

Разработка внешних компонент Механизмы платформы 1С Программист Стажер 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    9619    starik-2005    40    

49

Инструментарий разработчика Разработка внешних компонент Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример взаимодействия 1С с Apach Kafka посредством внешней компоненты, разработанной на основе официальной библиотеки librdkafka (the Apache Kafka C/C++ client library).

22.11.2023    6761    132    ivan1703    26    

43
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PowerBoy 3477 29.07.20 06:44 Сейчас в теме
т.е. рабочие процессы тоже отрубаются? как отличить рабочие процессы от ком-соединений?
2. zarankony 315 29.07.20 07:43 Сейчас в теме
(1) в данном случае никак. Как я уже писал есть фильтр который берёт только определенные приложения : Ворд и Эксель по умолчанию. Т.к. работает это на сервере, там обычно стоит только сервер 1с и рабочих процессов просто нет. Была ещё идея фильтровать их по пользователю, но опять же потребности нет потому что у большинства на сервере только 1с и крутится.
3. zarankony 315 29.07.20 09:50 Сейчас в теме
(1)Сейчас дополнительно покопался, похоже что у COM объектов имя сессии "Services", фильтранулся на нем и дописал обработку.
Для отправки сообщения требуется регистрация/авторизация