Flink: почему оператор break в l oop прерывает работу Flink - PullRequest
0 голосов
/ 28 апреля 2020

Существует richCoFlatmap, в котором создается экземпляр класса для каждого входного события. У класса есть некоторые переменные класса и определения методов. Класс также имеет вызовы для определения этих методов, используя конструкции if, основанные на определенных условиях. Блоки if, вызывающие определения метода, находятся в a для l oop. В некоторых случаях Если условие выполнено, я хочу, чтобы l oop существовал и не вызывал другие функции. Для этого, когда я использую сломать. Вместо выхода из l oop и возврата к RichCoFlatMap задание Flink завершается и завершается. Код Flink с использованием Scala

Я хотел бы знать, что я что-то упускаю или Flink не подходит для операторов прерывания.
И есть ли способ добиться этого без сбоев в работе.

Ниже приведена ошибка для справки

at akka.actor.ActorCell.invoke(ActorCell.scala:561)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
    at akka.dispatch.Mailbox.run(Mailbox.scala:225)
    at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
    ... 4 more
Caused by: scala.util.control.BreakControl

1 Ответ

0 голосов
/ 28 апреля 2020

Скорее всего, проблема в том, что вы не использовали breakable при вызове break. Это одно из различий между Java и Scala.

Scala обрабатывает разрывы иначе, чем Java, и для этого требуется специальная конструкция, называемая блоком breakable.

Вы можете найти больше информации здесь /

...