Питон (Джанго). Хранить Telnet-соединение

Я программирую веб-интерфейс, который общается с коммутаторами Cisco через telnet. Я хочу создать такую ​​систему, которая будет хранить по одному соединению telnet для каждого коммутатора, и каждый скрипт (веб-интерфейс, задания cron и т. Д.) Будет иметь к нему доступ. Это необходимо для создания единой очереди запросов для каждого устройства и предотвращения огромной загрузки процессора Cisco, вызванной несколькими одновременными соединениями telnet. Как я могу это сделать?

обновленный

Вариант с демоном обработки соединения хорош и будет работать наилучшим образом. Совместное использование объекта соединения telnet между скриптами может быть сложно реализовать и отладить. Но этот вариант интересен тем, что интерфейс используется только несколькими операторами и заданиями cron.

1 ответ

Решение

Обычный способ состоит в том, чтобы иметь процесс, работающий в фоновом режиме, который удерживает постоянные соединения telnet и команды в очереди для их отключения.

Затем подключите к нему внешние сценарии (например, через сокет unix), чтобы поставить команды в очередь и получить результаты асинхронно.

Но это может быть излишним. Сколько людей вы ожидаете использовать интерфейс коммутатора одновременно? Облегченной альтернативой только для его веб-части будет сохранение объекта подключения telnet в веб-сценариях и настройка веб-сервера / шлюза для одновременного запуска только одного экземпляра вашего веб-приложения.

Другие вопросы по тегам