...i wonder if we've done the same ourselves or given similar advice
to others.  This feels like something the framework should make
available as an expected lifecycle point.  I could see it making sense
for such cases that we would allow 'OnScheduled' to be on controller
services and let the user schedule how often that should get invoked
and just never let them set it to 0 in the case of a controller
service.

On Fri, Jun 17, 2016 at 3:25 PM, Mark Payne <marka...@hotmail.com> wrote:
> Hi Kumiko,
>
> I would recommend that in your OnEnabled method that you just create a
> ScheduledExecutorService and
> schedule the task to occur every 24 hours or however you'd like. Then, in
> your OnDisabled method call
> shutdown on that ScheduledExecutorService.
>
> A word to the wise, though - NiFi tends to have quite a few threads running,
> so for debugging purposes
> it is easier to see what's going on if you provide a ThreadFactory to your
> executor so that you can name
> your threads appropriately. Something like:
>
> Executors.newScheduledThreadPool(3, new ThreadFactory() {
>             @Override
>             public Thread newThread(Runnable r) {
>                 final Thread t =
> Executors.defaultThreadFactory().newThread(r);
>                 t.setDaemon(true);
>                 t.setName("Refresh Azure DataLake Token");
>                 return t;
>             }
> });
>
> I hope this helps!
>
> Thanks
> -Mark
>
>
> On Jun 17, 2016, at 3:00 PM, Kumiko Yada <kumiko.y...@ds-iq.com> wrote:
>
> Hello,
>
> I wrote the Custom Controller Service to authenticate the Azure Datalake
> Store, and I’d like to refresh a token every 24 hours.  What is the best way
> to authenticate every 24 hours?  Should I loop the authenticate code every
> 24 hours in OnEnabled?
>
> Thanks
> Kumiko
>
>

Reply via email to