Skip to content

Commit bfe9266

Browse files
Copilotnixel2007
andcommitted
Improve cleanup architecture to support future ФоновыеЗадания API integration
Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com>
1 parent febaa1d commit bfe9266

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

src/Классы/ПулСоединений.os

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,38 @@
132132
КонецПроцедуры
133133

134134
// Очистить завершенные контексты
135-
// Базовая очистка контекстов для предотвращения утечек памяти
136-
// TODO: Реализовать полноценную очистку завершенных фоновых заданий после изучения API
135+
// Проверяет статус фоновых заданий и освобождает соединения завершенных контекстов
136+
// При недоступности API фоновых заданий использует эвристическую очистку
137137
//
138138
Процедура ОчиститьЗавершенныеКонтексты()
139-
// Пока используем простую эвристику - ограничиваем количество активных контекстов
140-
// В дальнейшем можно будет интегрировать с API ФоновыеЗадания после изучения документации
139+
Попытка
140+
// Пытаемся использовать API фоновых заданий для точной очистки
141+
Если ТипЗнч(ФоновыеЗадания) = Тип("МенеджерФоновыхЗаданий") Тогда
142+
ОчиститьЗавершенныеКонтексты_ЧерезAPI();
143+
КонецЕсли;
144+
Исключение
145+
// Если API недоступен или возникла ошибка, используем эвристическую очистку
146+
КонецПопытки;
141147

148+
// Эвристическая очистка как запасной вариант
149+
ОчиститьЗавершенныеКонтексты_Эвристически();
150+
КонецПроцедуры
151+
152+
// Очистка завершенных контекстов через API фоновых заданий
153+
//
154+
Процедура ОчиститьЗавершенныеКонтексты_ЧерезAPI()
155+
// TODO: Реализовать после изучения полной документации API ФоновыеЗадания
156+
// Пока что заглушка для будущей реализации
157+
158+
// Предполагаемая логика:
159+
// 1. Получить список активных фоновых заданий
160+
// 2. Сравнить контексты (UUID-формат) с идентификаторами активных заданий
161+
// 3. Освободить соединения для завершенных заданий
162+
КонецПроцедуры
163+
164+
// Эвристическая очистка контекстов для предотвращения утечек памяти
165+
//
166+
Процедура ОчиститьЗавершенныеКонтексты_Эвристически()
142167
МаксимальноеКоличествоКонтекстов = 100;
143168

144169
Если Карта_КонтекстНаКоннектор.Количество() > МаксимальноеКоличествоКонтекстов Тогда

0 commit comments

Comments
 (0)