push_stream_message_ttl

Директива `push_stream_message_ttl` задаёт время жизни сообщений в каналах до их удаления.

Синтаксисpush_stream_message_ttl time;
По умолчаниюnone
Контекстhttp
Аргументы1

Описание

Директива push_stream_message_ttl указывает, как долго (в секундах) сообщения в push stream каналах сохраняются, прежде чем они признаются устаревшими и удаляются. Эта директива влияет на систему push-уведомлений, определяя жизненный цикл сообщений и контролируя длительность сохранения информации для подписчиков. Например, если TTL сообщения установлен в 300 секунд, сообщения будут храниться в канале 5 минут после публикации; по истечении этого времени они будут удалены, и новые подписчики, пытающиеся получить их, обнаружат, что они больше не существуют.

Слишком большое значение TTL может привести к ненужному расходованию памяти из‑за накопления сообщений, тогда как слишком маленькое значение TTL может привести к тому, что подписчики пропустят важные обновления. Поэтому директива должна быть настроена в соответствии с потребностями приложения и ожидаемыми паттернами потребления сообщений. Изменения этой настройки вступают в силу немедленно, без необходимости полной перезагрузки сервера, что обеспечивает гибкость в динамическом управлении временем жизни сообщений.

Директива определяется в HTTP-контексте конфигураций NGINX и сопровождается флагом NGX_CONF_TAKE1, который указывает, что она принимает ровно один аргумент (значение TTL). Указанное значение должно быть в допустимом формате времени, распознаваемом NGINX, например целые числа с опциональным суффиксом единицы времени (s — секунды, m — минуты и т.д.).

Пример конфига

http {
    push_stream_shared_memory_size 32M;
    push_stream_message_ttl 300;
    
    server {
        location /pub {
            push_stream_publisher admin;
            push_stream_channels_path $arg_id;
        }
        location ~ /sub/(.*) {
            push_stream_subscriber;
            push_stream_channels_path $1;
        }
    }
}

Убедитесь, что указано значение TTL в секундах; если этого не сделать, это приведёт к ошибкам конфигурации.

Убедитесь, что установленное значение TTL соответствует требованиям доставки сообщений вашего приложения, чтобы избежать преждевременного удаления важных сообщений.

Может потребоваться перезапустить сервер, если после внесения изменений возникают проблемы с разбором конфигурации.

← Ко всем директивам