Я имитирую аннулирование кэша TTL на шаге clear ProcessWindowFunction и пытаюсь получить доступ к объекту коллектора, используемому в процессе, в методе clear. Можно ли получить его, используя Context или getRuntimeContext .
public class TimedProcess extends ProcessWindowFunction<Map<String, List<String>>, Map<String, List<String>>, String , TimeWindow> {
Map<String, List<String>> cachedValue;
@Override
public void clear(Context context) throws Exception {
// How to get output used in process function here
// Collector<Map<String, List<String>>> output = ?
// Map<String, List<String> recentCacheValue;
// output.collect(recentCacheValue)
}
@Override
public void process(String visitorId, Context context, Iterable<Map<String, List<String>>> input, Collector<Map<String, List<String>>> output) throws Exception {
// cache store logic
// output.collect(cachedValue);
}
}