您的位置:首页 > 健康 > 养生 > 公众号开发零基础教程_电商界面设计图_百度经验实用生活指南_会计培训班有用吗

公众号开发零基础教程_电商界面设计图_百度经验实用生活指南_会计培训班有用吗

2024/12/23 12:12:31 来源:https://blog.csdn.net/ABU009/article/details/143663225  浏览:    关键词:公众号开发零基础教程_电商界面设计图_百度经验实用生活指南_会计培训班有用吗
公众号开发零基础教程_电商界面设计图_百度经验实用生活指南_会计培训班有用吗

只要自定一个Source类实现SourceFunction接口,一个Sink类实现SinkFunction接口,就能正常使用自定义的Source和Sink,或者直接extends继承RichSourceFunction和RichSinkFunction,RichSinkFunction:多个open和close方法

1、自定义Source

import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.SourceFunction;public class Demo3SourceFunction {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();//使用自定义sourceDataStream<Integer> myDS = env.addSource(new MySource());myDS.print();env.execute();}
}//自定义source
//实现SourceFunction接口
class MySource implements SourceFunction<Integer> {//在run方法中读取外部的数据,使用原生java代码@Overridepublic void run(SourceContext<Integer> ctx) throws Exception {while (true) {ctx.collect(1);Thread.sleep(1000);}}//cancel方法是任务被取消是执行的,用于回收资源@Overridepublic void cancel() {}
}

2、自定义Sink

import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.sink.SinkFunction;public class Demo2MySink {public static void main(String[] args) throws Exception {StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();DataStreamSource<String> linesDS = env.socketTextStream("master", 8888);linesDS.addSink(new MySink());env.execute();}
}//自定义Sink
class MySink implements SinkFunction<String> {//每一条数据执行一次@Overridepublic void invoke(String value, Context context) throws Exception {System.out.println("mySink:" + value);}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com