Eugene, that worked. Can you explain why this doesn't work when I set the
UUID (or random value) from the constructor?

It looks like the DoFn constructor is called once by the worker, then that
constructed object is copied as many times as needed, each instance getting
it's own thread and @Setup,@StartBundle,@etc loop. Is that correct?

Thanks for the help.

Jacob

On Sun, Nov 19, 2017 at 10:24 AM, Eugene Kirpichov <[email protected]>
wrote:

> You could create a private variable with a UUID, filled in in @Setup or
> (if you're hitting that bug where @Setup wasn't being called) in
> readObject()?
>
> On Sun, Nov 19, 2017 at 8:17 AM Jacob Marble <[email protected]> wrote:
>
>> Is there a recommended way to get a unique id for each instance of a
>> DoFn?
>>
>> - DataflowWorkerHarnessOptions.getWorkerId() only returns a unique id
>> per worker, which can contain multiple instances of a DoFn.
>> - Looks like ThreadLocalRandom is seeded with the same value on every
>> instance
>> - Thinking I'll try workerId + construction timestamp next
>>
>> Jacob
>>
>

Reply via email to