Class ScheduledJobLockExecuter


  • public class ScheduledJobLockExecuter
    extends java.lang.Object
    This class encapsulates the JobLockService usage in order to guarantee that a job is not executed simultaneously in more than one node in a cluster. After instantiated passing in constructor job to be executed, as well as the name of the to be locked job and the JobLockService, the execute method of this class will execute the job taking care of all cluster aware lockings.

    This code is based on original code by Derek Hulley on ContentStoreCleaner, extracting the generic locking code in order to be reused and avoid code duplication.

    Since:
    4.1.5
    Author:
    Rui Fernandes
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void execute​(org.quartz.JobExecutionContext jobContext)
      It will execute the job passed on instantiation taking care of all cluster aware lockings.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ScheduledJobLockExecuter

        public ScheduledJobLockExecuter​(JobLockService jobLockService,
                                        java.lang.String name,
                                        AbstractScheduledLockedJob job)
        Parameters:
        jobLockService - the JobLockService
        name - the name of the job to be used for the lock registry
        job - the job to be executed
    • Method Detail

      • execute

        public void execute​(org.quartz.JobExecutionContext jobContext)
                     throws org.quartz.JobExecutionException
        It will execute the job passed on instantiation taking care of all cluster aware lockings.
        Parameters:
        jobContext - the usual quartz job context
        Throws:
        org.quartz.JobExecutionException - thrown if the job fails to execute