Class SleepWork

java.lang.Object
org.nuxeo.ecm.core.work.AbstractWork
org.nuxeo.ecm.core.work.SleepWork
All Implemented Interfaces:
Serializable, Work

public class SleepWork extends AbstractWork
Simple work that just sleeps, mostly used for tests.
See Also:
  • Field Details

    • CATEGORY

      public static final String CATEGORY
      See Also:
    • durationMillis

      protected long durationMillis
    • category

      protected String category
    • count

      protected AtomicInteger count
    • partitionKey

      protected String partitionKey
    • idempotent

      protected boolean idempotent
    • coalescing

      protected boolean coalescing
  • Constructor Details

    • SleepWork

      public SleepWork(long durationMillis, String category, String id)
      Creates a work instance that does nothing but sleep.
      Parameters:
      durationMillis - the sleep duration
      Since:
      10.2
    • SleepWork

      public SleepWork(long durationMillis, String id)
      Since:
      10.2
    • SleepWork

      public SleepWork(long durationMillis)
      Since:
      10.2
    • SleepWork

      @Deprecated public SleepWork(long durationMillis, boolean debug)
      Deprecated.
      since 10.2 debug flag is unused
      If debug is true, then the various debug* methods must be called in the proper order for the work to start and stop.
      Parameters:
      durationMillis - the sleep duration
      debug - true for debug
    • SleepWork

      @Deprecated public SleepWork(long durationMillis, boolean debug, String id)
      Deprecated.
      since 10.2 debug flag is unused
    • SleepWork

      @Deprecated public SleepWork(long durationMillis, String category, boolean debug)
      Deprecated.
      since 10.2 debug flag is unused
    • SleepWork

      @Deprecated public SleepWork(long durationMillis, String category, boolean debug, String id)
      Deprecated.
      since 10.2 debug flag is unused
  • Method Details

    • getCategory

      public String getCategory()
      Description copied from interface: Work
      Gets the category for this work.

      Used to choose an execution queue.

      Specified by:
      getCategory in interface Work
      Overrides:
      getCategory in class AbstractWork
      Returns:
      the category, or null for the default
    • getTitle

      public String getTitle()
      Description copied from interface: Work
      Gets a human-readable name for this work instance.
      Returns:
      a human-readable name
    • work

      public void work()
      Description copied from interface: Work
      This method should implement the actual work done by the Work instance.

      It should periodically update its progress through Work.setProgress(org.nuxeo.ecm.core.work.api.Work.Progress).

      To allow for suspension by the WorkManager, it should periodically call Work.isSuspending(), and if true call Work.suspended() return early with saved state data.

      Clean up can by implemented by Work.cleanUp(boolean, Exception).

      Specified by:
      work in interface Work
      Specified by:
      work in class AbstractWork
      See Also:
    • doWork

      protected void doWork() throws InterruptedException
      Throws:
      InterruptedException
    • getPartitionKey

      public String getPartitionKey()
      Description copied from interface: Work
      Returns a key that can be used by the WorkManager implementation to guarantee that works with the same partition key will be executed in the order they are submitted.
      Specified by:
      getPartitionKey in interface Work
      Overrides:
      getPartitionKey in class AbstractWork
    • isIdempotent

      public boolean isIdempotent()
      Description copied from interface: Work
      Returns true if a work with a given Work.getId() should always produce the same result. The WorkManager implementation can safely skip duplicate executions of idempotent work.
    • setIdempotent

      public void setIdempotent(boolean idempotent)
    • isCoalescing

      public boolean isCoalescing()
      Description copied from interface: Work
      When setting the coalescing flag to true you indicate to the work manager that if multiple works with the same id are scheduled you only care about the lastest execution. The goal is to skip useless executions to save resources, It is up to the work manager implementation to support or not this optimization.
    • setCoalescing

      public void setCoalescing(boolean coalescing)
    • toString

      public String toString()
      Overrides:
      toString in class AbstractWork