Hi Eduardo,
These differences are described by the link I sent (
https://github.com/apache/beam/blob/master/sdks/java/core/src/main/java/org/apache/beam/sdk/transforms/DoFn.java#L465-L666)
- it documents what kind of things it's best to do in each method. Please
let me know if something is still unclear.

On Tue, Jul 3, 2018 at 1:35 PM eduardo.mora...@gmail.com <
eduardo.mora...@gmail.com> wrote:

> FinishBundle() does the job.
>
> Should I keep using Setup()? What is the difference between Setup() and
> StartBundle()?
>
> Thanks again.
>
> On 2018/07/03 20:10:21, Henning Rohde <hero...@google.com> wrote:
> > Teardown has very loose guarantees on when it's called and you
> essentially
> > can't rely on it. Currently, for Go on non-direct runners, we hang on to
> > the bundle descriptors forever and never destroy them (and in turn never
> > call Teardown). Even if we didn't, failures/restarts could cause Teardown
> > to not be called.
> >
> > If something _must_ happen, FinishBundle is the right method.
> >
> > Thanks,
> >  Henning
> >
> > On Tue, Jul 3, 2018 at 10:37 AM eduardo.mora...@gmail.com <
> > eduardo.mora...@gmail.com> wrote:
> >
> > > Essentially I have the following code:
> > >
> > > type Writer struct {
> > >   Pool WriterPool
> > > }
> > >
> > > func (w *Writer) Setup() {
> > >  w.Pool = Init()
> > > }
> > >
> > > func (w* Writer) ProcessElement(ctx, elem Elem) {
> > >   w.Pool.Add(elem)
> > > }
> > >
> > > func (w* Writer) Teardown() {
> > >   w.Pool.Write()
> > >   w.Pool.Close()
> > > }
> > >
> > > beam.ParDo0(scope, &Writer{}, elemCollection)
> > >
> > > The above code runs fine with the direct runner but not with dataflow.
> > >
> > >  I added log lines to the above methods, and the ones in Teardown()
> never
> > > appear in the logs.
> > > If I change my code as follows:
> > >
> > > func (w* Writer) ProcessElement(ctx, elem Elem) {
> > >   w.Pool.Add(elem)
> > >   w.Pool.Write()
> > > }
> > >
> > > Then I see the data being written, but I lose the ability to pool,
> plus I
> > > am leaking connections.
> > >
> > > Is this a known issue, or I am going something wrong?
> > >
> > > Thanks again for the help.
> > >
> >
>

Reply via email to