Допускается ли использование Sleep в режиме Streaming Stream - PullRequest
0 голосов
/ 19 июня 2019

У меня есть требование добавить спящий оператор, если я не могу использовать сообщение и хочу повторить попытку через 5 с.Для этого мне нужно установить какие-либо свойства конфигурации?

rdd.foreachPartition(new VoidFunction<Iterator<ConsumerRecord<String, Object>>>() {
        @Override
        public void call(Iterator<ConsumerRecord<String, Object>> record)
                throws Exception {
            while (record.hasNext()) {
                ConsumerRecord<String, Object> consumerRecord = record.next();
               boolean flag=false;
                while(flag){
                    flag= processmessage(record.value())
                if(!flag)
                    Thread.sleep(1000)
                }
            }
        }
    });

В настоящее время я не могу запустить свою работу

1 Ответ

0 голосов
/ 21 июня 2019

вы можете использовать режим сна в приложении Stream Streaming.

Но подождите,

Задание потоковой передачи Spark запускает микропакеты, и мы определяем время интервала потока, которое обычно составляет несколько секунд (может быть 1 с, 2s, ... и т. Д.).Если вы используете sleep в своем коде потокового воспроизведения, для завершения работы каждого микропакета потребуется дополнительное время.Это может повлиять на производительность, если данные поступают очень часто.

Это полностью зависит от требований приложения, приведет ли спящий режим к каким-либо проблемам с производительностью или задержке, или это может просто не повлиять, если данные поступают после длительных интервалов.

Надеюсь, это поможет.

...