Да възможно е. Можете да направите своя обект Connection преходен, така че да не се сериализира и да го създадете веднъж на пакет чрез startBundle
метод. След като всички елементи в пакета бъдат обработени, връзката може да бъде затворена чрез finishBundle
метод.
class MyDoFn extends DoFn<X, Y> {
private transient Connection jdbc;
@Setup
public void setup(Context c) {
jdbc = // Create connection
}
@ProcessElement
public void processElement(ProcessContext c) {
// query database
}
@Teardown
public void tearDown(Context c) {
// close connection
}
}