Class SailPointWorkerExecutor

  • All Implemented Interfaces:
    sailpoint.object.BaseExecutor, sailpoint.object.RequestExecutor

    public final class SailPointWorkerExecutor
    extends sailpoint.request.AbstractRequestExecutor
    Request executor to allow partitioning of workers across all nodes in the cluster.

    Your Request should include an attribute called serializedWorkers, which must be a list of Base64-encoded strings, each representing a Java Serialized worker. Each worker should encapsulate the work it’s expected to do and must not depend on any inputs from the Request.

    (In other words, the worker should be able to do the same job whether invoked via a Request or directly in-line in your Java code.)

    Workers will be deserialized using ObjectInputStream.

    Workers will run in a single Sailpoint context and will be invoked via execute() and not via implementation().

    Each worker will be provided a TaskMonitor for this Request, which it can use to execute partition status updates.

    I recommend creating a number of partitions with relatively small worker counts, because every update of the Request will need to serialize the entire object, including your strings, back to the database.

    An interrupted SailPointWorkerExecutor (e.g., via server shutdown) will be deleted rather than resumed when the server is restarted. You will have no notification of this.

    • Method Detail

      • execute

        public void execute​(sailpoint.api.SailPointContext sailPointContext,
                            sailpoint.object.Request request,
                            sailpoint.object.Attributes<String,​Object> attributes)
                     throws sailpoint.request.RequestPermanentException
        Main entry point
        Throws:
        sailpoint.request.RequestPermanentException
        See Also:
        RequestExecutor.execute(SailPointContext, Request, Attributes)
      • terminate

        public boolean terminate()
        Specified by:
        terminate in interface sailpoint.object.BaseExecutor
        Overrides:
        terminate in class sailpoint.request.AbstractRequestExecutor