If you initialize in prepare at least you don't have to check it every time
you access it.
On Nov 5, 2014 7:09 AM, "Alex Zuzin" <[email protected]> wrote:

> A lazy init singleton is precisely what I'm trying to avoid. I guess I
> can't, huh.
>
> Sent from my iPhone
>
> On Nov 5, 2014, at 14:57, Nathan Leung <[email protected]> wrote:
>
> Once per task. I use static fields in the class and check the field during
> prepare (with proper synchronization of course). Or a static field with
> static initialization. I guess this might not work entirely as you expect
> if you have multiple classloaders loading your bolt class.
> On Nov 5, 2014 6:32 AM, "Alex Zuzin" <[email protected]> wrote:
>
>> Do I understand correctly that bolts are instantiated once per worker and
>> never re-prepared?
>>
>> Thank you,
>> - alexz
>>
>> Sent from my iPhone
>>
>> On Nov 5, 2014, at 13:37, Itai Frenkel <[email protected]> wrote:
>>
>>  AFAIK submitTopology submits the JAR to Nimbus which is then loaded to
>> each worker, so it is run only once, and not on each worker.
>>
>>
>>  We use a dummy bolt's prepare method for that. Not sure what is the
>> "correct" way of doing it.
>>
>>
>>  Itai
>>  ------------------------------
>> *From:* Alex Zuzin <[email protected]>
>> *Sent:* Wednesday, November 5, 2014 10:43 AM
>> *To:* [email protected]
>> *Subject:* Once-per JVM init?
>>
>>  Hi all!
>>
>>  Am I correct to assume that "submitTopology" is executed once per JVM
>> and is a good place to init resources that require once-per-JVM
>> initialization?
>> If not, is there such a spot (it needs to have access to Storm config)?
>> If yes, where? :)
>>
>>  Thank you!
>>
>>  --
>> "If you can't conceal it seamlessly, expose it vigorously"
>>
>>

Reply via email to