Annotation Interface OnScheduled


@Documented @Target(METHOD) @Retention(RUNTIME) @Inherited public @interface OnScheduled

Marker annotation a Processor or ReportingTask implementation can use to indicate a method should be called whenever the component is scheduled to run. This will be called before any call to 'onTrigger' and will be called once each time a Processor or Reporting Task is scheduled to run. This occurs in one of two ways: either a user clicks to schedule the component to run, or NiFi is restarted with the "auto-resume state" configuration set to true (the default value) and the component is already running.

Methods using this annotation must take either 0 arguments or a single argument.

If using 1 argument and the component using the annotation is a Processor, that argument must be of type ProcessContext.

If using 1 argument and the component using the annotation is a Reporting Task, that argument must be of type ConfigurationContext.

If any method annotated with this annotation throws any Throwable, the framework will wait a while and then attempt to invoke the method again. This will continue until the method succeeds, and the component will then be scheduled to run after this method return successfully.

Implementation Guidelines:

  • Methods with this annotation are expected to perform very quick, short-lived tasks. If the function is expensive or long-lived, the logic should be performed in the onTrigger method instead.
  • If a method with this annotation does not return (exceptionally or otherwise) within a short period of time (the duration is configurable in the properties file), the Thread may be interrupted.
  • Methods that make use of this interface should honor Java's Thread interruption mechanisms and not swallow InterruptedException.