Является ли apache flink обратным вызовом TimerService и потоком KeyedProcessFunction.processElement - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть реализация KeyedProcessFunction, которая переопределяет методы "processElement ()" и "onTimer ()". Являются ли они потоки безопасными друг для друга?

Кажется, что метод onTimer () вызывается из пула событий TimerService. Так что мне кажется, что они могут быть выполнены одновременно.

1 Ответ

1 голос
/ 18 февраля 2020

processElement и onTimer никогда не выполняются параллельно.

До Flink 1.10 оба метода будут вызываться после получения блокировки контрольной точки.

Начиная с Flink 1.10, они вызываются только через один и тот же поток задач, поэтому даже безопасно обращаться к полям несинхронизированным способом (даже если использование неуправляемых полей не рекомендуется для начала).

...