Source 定时执行sql,只执行一次就close了source

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Source 定时执行sql,只执行一次就close了source

zhao liang
HI,我需要定时从MySQL中读取维表的数据,但是source的方法执行一遍就结束了,按open、run、close按序执行一遍,我在open方法中定义了ScheduledExecutorService来实现定时读取数据,但是job异常的时候这个线程无法被cancled,恢复策略会无线重启job,导致线程越来越多,想问问定时读维表有什么好的实现方法吗?
Reply | Threaded
Open this post in threaded view
|

回复: Source 定时执行sql,只执行一次就close了source

gongpulin@163.com
HI,我需要定时从MySQL中读取维表的数据,但是source的方法执行一遍就结束了,按open、run、close按序执行一遍,我在open方法中定义了ScheduledExecutorService来实现定时读取数据,但是job异常的时候这个线程无法被cancled,恢复策略会无线重启job,导致线程越来越多,想问问定时读维表有什么好的实现方法吗?
Reply | Threaded
Open this post in threaded view
|

Re: 回复: Source 定时执行sql,只执行一次就close了source

gongpulin@163.com
自定义Source,在run方法中定时读取,可参照flink-example自定义Source例子:https://github.com/apache/flink/blob/master/flink-examples/flink-examples-streaming/src/main/scala/org/apache/flink/streaming/scala/examples/windowing/SessionWindowing.scala



[hidden email]
 
发件人: [hidden email]
发送时间: 2020-08-27 16:21
收件人: zhao liang; [hidden email]
主题: 回复: Source 定时执行sql,只执行一次就close了source
HI,我需要定时从MySQL中读取维表的数据,但是source的方法执行一遍就结束了,按open、run、close按序执行一遍,我在open方法中定义了ScheduledExecutorService来实现定时读取数据,但是job异常的时候这个线程无法被cancled,恢复策略会无线重启job,导致线程越来越多,想问问定时读维表有什么好的实现方法吗?
Reply | Threaded
Open this post in threaded view
|

Re: Source 定时执行sql,只执行一次就close了source

shizk233
In reply to this post by zhao liang
不太清楚你定时读mysql是需要做什么,如果是维表join的话考虑temporal table join[1],通过设置ttl时间和数量来更新缓存[2]

[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/streaming/temporal_tables.html
[2]
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/jdbc.html#how-to-create-a-jdbc-table

zhao liang <[hidden email]> 于2020年8月27日周四 下午3:48写道:

>
> HI,我需要定时从MySQL中读取维表的数据,但是source的方法执行一遍就结束了,按open、run、close按序执行一遍,我在open方法中定义了ScheduledExecutorService来实现定时读取数据,但是job异常的时候这个线程无法被cancled,恢复策略会无线重启job,导致线程越来越多,想问问定时读维表有什么好的实现方法吗?
>