Работа с прокси-серверами
Подсистема ботов Telegram позволяет работать с прокси-серверами с учетом состояния каналов для разных прокси. Справочник предназначен для хранения информации о промежуточных прокси-серверах, через которые будет работать конфигурация взаимодействуя с ботом. Мы можем внести несколько прокси и работать через них. При этом подсистема умеет:
- Загрузить список бесплатных прокси
- Предпринимать попытки отправки через другой прокси, если по какой-то причине попытка неудачна.
- Собирать статистику отправки через разные прокси и в начале пытаться отправлять с помощью прокси, по убыванию успешности отправки прокси
Отправленное сообщение увеличивает вес прокси, не отправленное сообщение вес уменьшает. Это позволяет хорошим прокси "всплыть" в верх и использоваться чаще, а те, через которые отправка осуществляется плохо, будут внизу и, соответственно, использоваться реже. Причем при подключении ботом алгоритм выбора прокси осуществляетс я аналогом метода трех точек. То есть прокси ранжируются исходя из суммы трех показателей:
- сумма успешных и неуспешных отправлений за месяц;
- успешность последней отправки;
- сумма успешных и неуспешных отправлений за текущий день
Каждый из указанных показателей имеет свой коэффициент - 7/12, 3/12 и 2/12 соответственно. Коэффициенты подобраны эвристически.
При этом неуспешное отправление при суммировании за день засчитывается не за -1 а за -0,8. Такую оценку словами можно описать примерно так: "если прокси хорошо отправлял в течении предыдущего месяца (читай 30 предшествующих дней, то скорее всего будет выбран он, однако если в течении дня прокси работал нестабильно и последняя отправка была неудачной, то возможно его рейтинг снизится).
Каждая отправка и не отправка через прокси-сервер записывается и влияет на его рейтинг.
Реквизиты справочника:
- Активность - использовать прокси-сервер для отправки сообщений или нет.
- Протокол - протокол прокси-сервера (https или socks5).
- Сервер - имя прокси-сервера (IP-адрес или DNS-имя).
- Порт - порт прокси-сервера.
- Пользователь - имя пользователя прокси-сервера.
- Пароль - пароль пользователя подключения прокси-сервера.
- Комментарий - произвольный комментарий.