Class ScheduledExecutorServiceHeaplet

java.lang.Object
org.forgerock.openig.heap.GenericHeaplet
org.forgerock.openig.thread.ScheduledExecutorServiceHeaplet
All Implemented Interfaces:
Heaplet

public class ScheduledExecutorServiceHeaplet extends GenericHeaplet
Heaplet for building ScheduledExecutorService instances.

Creates a thread pool that can schedule commands to run after a given delay, or to execute periodically.

Reference:

     
     {
         "type": "ScheduledExecutorService",
         "config": {
             "corePoolSize":  integer > 0 [ OPTIONAL - default to 1 (will grow as needed)]
             "gracefulStop":  boolean     [ OPTIONAL - default to true (all running jobs will complete)]
             "gracePeriod" :  duration    [ OPTIONAL - default to '10 second']
         }
     }
     
 
Usage:
     
     {
         "type": "ScheduledExecutorService",
         "config": {
             "corePoolSize": 42 // defaults to 1 (will grow as needed), only positive and non-zero
         }
     }
     
 

This class supports graceful stop. gracefulStop is a setting that allows a thread pool to wind down nicely before killing aggressively running (and submitted) jobs.

     
     {
         "gracefulStop": false // defaults to true
     }
     
 

gracefulPeriod attribute defines how long the heaplet should wait for jobs to actually terminate properly.

Note that this setting is only considered when gracefulStop is set to true.

     
     {
         "gracePeriod": "20 seconds" // defaults to 10 seconds
     }
     
 

When the period is over, if the executor service is not properly terminated, the heaplet prints a message and drains the queued tasks and notify the running tasks for interruption.

Note that all configuration attributes can be defined using static expressions (they can't be resolved against context or request objects that are not available at init time).

See Also:
  • Field Details

  • Constructor Details

    • ScheduledExecutorServiceHeaplet

      public ScheduledExecutorServiceHeaplet()
  • Method Details

    • create

      public ScheduledExecutorService create() throws HeapException
      Description copied from class: GenericHeaplet
      Called to request the heaplet create an object. Called by Heaplet.create(Name, JsonValue, Heap) after initializing the protected field members. Implementations should parse configuration but not acquire resources, start threads, or log any initialization messages. These tasks should be performed by the GenericHeaplet.start() method.
      Specified by:
      create in class GenericHeaplet
      Returns:
      The created object.
      Throws:
      HeapException - if an exception occurred during creation of the heap object or any of its dependencies.
    • destroy

      public void destroy()
      Description copied from class: GenericHeaplet
      Releases observability resources: deregisters the HTTP endpoint, all meters, and startup metrics.

      Subclasses that override this method must call super.destroy() last, after releasing their own domain resources. This ensures that monitoring remains active for the full lifetime of those resources and that any metrics emitted during shutdown are not lost.

      Specified by:
      destroy in interface Heaplet
      Overrides:
      destroy in class GenericHeaplet