Задание потока данных останавливается с помощью "Обед ожидания"
Запустив конвейер потокового потока данных с достаточно продвинутой группой с помощью окон сеансов, я столкнулся с проблемами после нескольких часов работы. Задание масштабируется у рабочих, но позже начинает загружаться журналы со следующим
Processing lull for PT7500.005S in state process of ...
Преобразование, регистрирующее этот код, выполняется сразу после блока "group by" и выполняет асинхронный HTTP-вызов (используя scala.concurrent.{Await/Promise}
) к внешнему сервису.
Есть идеи, почему это происходит? Связано с асинхронностью, масштабированием или группировкой по стратегии?
- Кодвакансии: 2018-01-29_03_13_40-12789475517328084866
- SDK: Apache Beam SDK для Java 2.2.0
- Версия Scio: 0.4.7
1 ответ
@jkff комментарий указал мне в правильном направлении. Первым шагом было добавление тайм-аута к будущему scala, которое показало мне, что "Обрыв ожидания" на самом деле был обещаниями, которые никогда не прекращались, что заставляло поток данных держать их "навсегда". Теперь я получаю правильные ошибки тайм-аута в будущем, но безрезультатно, поскольку работа все еще не продвигается вперед. Теперь я перешел на синхронные звонки, но пропускная способность намного ниже