Apache flink Flink中基于无界集合的流

Apache flink Flink中基于无界集合的流,apache-flink,flink-streaming,flink-cep,flink-batch,Apache Flink,Flink Streaming,Flink Cep,Flink Batch,是否可以在flink中创建一个无限的集合流。就像在地图中添加元素一样,flink应该像在套接字流中一样处理。一旦读取了初始元素,它就不应该退出。您可以创建一个自定义的源函数,该函数永远不会终止(直到调用取消(),并在元素出现时发出元素)。您希望有一个类似以下的类: 类MyUnboundedSource扩展了RichParallelSourceFunction{ ... 私密的瞬时波动布尔运行; ... @凌驾 公共无效运行(SourceContext ctx)引发异常{ (跑步时){ //调用返

是否可以在flink中创建一个无限的集合流。就像在地图中添加元素一样,flink应该像在套接字流中一样处理。一旦读取了初始元素,它就不应该退出。

您可以创建一个自定义的
源函数
,该函数永远不会终止(直到调用
取消()
,并在元素出现时发出元素)。您希望有一个类似以下的类:

类MyUnboundedSource扩展了RichParallelSourceFunction{
...
私密的瞬时波动布尔运行;
...
@凌驾
公共无效运行(SourceContext ctx)引发异常{
(跑步时){
//调用返回下一条记录的方法(如果可用)。
MyType记录=getNextRecordOrNull();
if(记录!=null){
ctx.收集(记录);
}否则{
sleep(无数据睡眠时间());
}
}
}
@凌驾
公开作废取消(){
运行=错误;
}
}
请注意,您需要考虑保存状态以支持至少一次或恰好一次的记录生成