我需要访问多运营商的数据库。目前的解决方案是 AbstractRichFunction
管理数据源的生命周期 open
以及 close
方法。
这是我的密码:
public class DbRichFunction extends AbstractRichFunction {
private final DbConfig dbConfig;
private transient DataSource dataSource;
public DbRichFunction(DbConfig dbConfig) {
this.dbConfig= dbConfig;
}
@Override
public void open(Configuration parameters) throws Exception {
dataSource = dbConfig.create();
}
@Override
public void close() throws Exception {
dataSource.close();
}
}
如果我可以在同一个jvm中共享同一个示例跨任务(同一个操作符与否),这将节省资源。我不确定如果我使用带有引用计数器的静态变量是否会导致内存泄漏。
我想做的是:
public class DbRichFunction extends AbstractRichFunction {
private transient DataSource dataSource;
public DbRichFunction() {
}
@Override
public void open(Configuration parameters) throws Exception {
dataSource = DbConfig.acquire();
}
@Override
public void close() throws Exception {
DbConfig.release();
}
}
暂无答案!
目前还没有任何答案,快来回答吧!