假设我需要使用richsinkfunction实现一个自定义接收器,并且在接收器中需要一些变量,比如dbconnection。我应该在哪里初始化dbconnection?我在open()方法中看到了大多数初始化dbconnection的文章,为什么不在构造函数中呢?下面的问题是什么样的变量应该在构造函数中初始化,什么样的变量应该在open()中初始化?
rqdpfwrv1#
构造一个 RichFunction 仅在客户端调用。如果需要在集群上实际执行某些操作,那么应该在 open . open 如果要访问flink作业的参数或 RuntimeContext (用于状态、计数器等)。当你使用 open ,您还想使用 close 以对称的方式。所以要回答你的问题:你的 DBConnection 应在中初始化 open 只是。在构造函数中,通常只在字段中存储作业常量参数,例如如果接收器可以跨多个具有不同数据结构的项目重用,则如何访问记录的键。
RichFunction
open
RuntimeContext
close
DBConnection
1条答案
按热度按时间rqdpfwrv1#
构造一个
RichFunction
仅在客户端调用。如果需要在集群上实际执行某些操作,那么应该在open
.open
如果要访问flink作业的参数或RuntimeContext
(用于状态、计数器等)。当你使用open
,您还想使用close
以对称的方式。所以要回答你的问题:你的
DBConnection
应在中初始化open
只是。在构造函数中,通常只在字段中存储作业常量参数,例如如果接收器可以跨多个具有不同数据结构的项目重用,则如何访问记录的键。