Тайм-ауты HTTP-запросов каналов
Тайм-ауты запросов к внешним API каналов задаются через редактор настроек аккаунта (account config) в секции outgoing_http_request_settings.
Поддерживаются значение по умолчанию и индивидуальные значения для типов каналов.
Приоритет источников значения
В каждом HTTP-вызове канала используется значение тайм-аута согласно приоритету:
-
Персональная настройка для типа канала в
outgoing_http_request_settings["channel.<channel_type>"].timeout -
Значение по умолчанию
outgoing_http_request_settings["default"].timeout -
Константа базового класса
BaseChannelAPI.REQUEST_TIMEOUT(по умолчанию 10 секунд)
Если в конфиге тайм-аут не задан, будет использован следующий по приоритету источник.
Где задаётся
Раздел Настройки аккаунта → Account config.
Секция: outgoing_http_request_settings.
Поддерживаются поля:
-
timeout— число (секунды, допускается дробная часть) -
require_secure_transport— логическое (требовать HTTPS) -
min_ssl_version— минимальная версия TLS (например,TLSv1_2)
Дополнительные поля могут использоваться для создания HTTP/HTTPS-сессий, но на величину тайм-аута влияет только timeout.
Примеры конфигурации
Глобальный тайм-аут + персональный для Telegram
{
"outgoing_http_request_settings": {
"default": {
"require_secure_transport": true,
"min_ssl_version": "TLSv1_2",
"timeout": 10
},
"channel.telegram": {
"require_secure_transport": true,
"min_ssl_version": "TLSv1_2",
"timeout": 11
}
}
}
В этом примере все каналы используют тайм-аут 10 секунд, а Telegram — 11 секунд.
Только глобальный тайм-аут
{
"outgoing_http_request_settings": {
"default": { "timeout": 15 }
}
}
Все каналы будут использовать 15 секунд.
Идентификаторы типов каналов
Ключ для индивидуальной настройки строится по шаблону channel.<channel_type>.
Поддерживаемые значения <channel_type>:
apple_chat
avito
custom
email
email_imap
fb
fb_webim
instagram
instagram_webim
line
odnoklassniki
seventech
skype
telegram
viber
vk
whatsapp_360dialog
whatsapp_gupshup
whatsapp_infobip
whatsapp_vonage
(Примеры ключей: channel.vk, channel.whatsapp_360dialog, channel.line)
Поведение в коде
-
При создании HTTP-сессии канал получает конфиг из
outgoing_http_request_settingsи сохраняет тайм-аут для всех последующих запросов. -
Если канал не нашёл персональный конфиг и значение по умолчанию, применяется
BaseChannelAPI.REQUEST_TIMEOUT(10 с). -
Логирование может выводить используемый конфиг и итоговый тайм-аут, что удобно для диагностики:
-
Creating session with config: {...} -
request timeout: <число>
Ограничения
Изменение через GUI настроек канала для тайм-аута пока не поддерживается. Настройка выполняется через account config.