ee15278c8f
pingCheck строил new Redis(...) на КАЖДЫЙ вызов и делал disconnect() только на success-пути. Пока Redis лежит, каждый тик health-пробы добавлял свежий, вечно реконнектящийся клиент — неограниченный рост хэндлов/клиентов на всё время недоступности Redis. Теперь один долгоживущий probe-клиент, переиспользуемый между тиками: lazyConnect (конструктор не бросает и не коннектится жадно), maxRetriesPerRequest: 1 и enableOfflineQueue: false (проба фейлится быстро, команды не буферизуются), плюс listener на 'error' (иначе unhandled error роняет процесс). onModuleDestroy закрывает клиент при shutdown. Тест: интеграционный — N проб при лежащем Redis (реальный refused-порт, не мок поведения) создают РОВНО ОДИН клиент (на баге было бы N); onModuleDestroy освобождает клиент, следующая проба лениво строит новый.