Только для чтения последнее сообщение из темы Кафки

Я пытаюсь отправить видеопоток через тему Кафки и выполняю некоторую обработку между каждым потреблением сообщений. Эта обработка занимает примерно 20 миллисекунд, поэтому после 100 кадров у меня появляется соответствующая задержка. Я могу обнаружить эту задержку, однако мне нужно иметь возможность заставить моего потребителя читать последний отправленный кадр с момента обнаружения задержки. Я знаю, что это приведет к пропуску многих кадров.

Я использую cppkafka, которая основана на librdkafka.

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

Есть мысли по этому поводу?

1

Решение

Простой, хотя и грубый, способ сделать это — проверить количество кадров в очереди. Если выше определенного верхнего порога, тогда сделайте жесткий цикл, где вы «потребляете» и отбрасывать (т.е. вообще не обрабатывает) фреймов, пока вы не достигнете нижнего порога (в вашем случае один).

Как только этот узкий цикл завершен, вы возобновляете нормальную обработку очереди.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]