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" >> >>
