Class QuartzSchedulerImpl

java.lang.Object
io.quarkus.quartz.runtime.QuartzSchedulerImpl
All Implemented Interfaces:
QuartzScheduler, io.quarkus.scheduler.Scheduler

@Typed({QuartzScheduler.class,io.quarkus.scheduler.Scheduler.class}) @Singleton public class QuartzSchedulerImpl extends Object implements QuartzScheduler
Although this class is not part of the public API it must not be renamed in order to preserve backward compatibility. The name of this class can be stored in a Quartz table in the database. See https://github.com/quarkusio/quarkus/issues/29177 for more information.
  • Field Details

  • Constructor Details

    • QuartzSchedulerImpl

      public QuartzSchedulerImpl(io.quarkus.scheduler.common.runtime.SchedulerContext context, QuartzSupport quartzSupport, SchedulerRuntimeConfig schedulerRuntimeConfig, jakarta.enterprise.event.Event<io.quarkus.scheduler.SkippedExecution> skippedExecutionEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.SuccessfulExecution> successExecutionEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.FailedExecution> failedExecutionEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.SchedulerPaused> schedulerPausedEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.SchedulerResumed> schedulerResumedEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.ScheduledJobPaused> scheduledJobPausedEvent, jakarta.enterprise.event.Event<io.quarkus.scheduler.ScheduledJobResumed> scheduledJobResumedEvent, jakarta.enterprise.inject.Instance<org.quartz.Job> jobs, jakarta.enterprise.inject.Instance<jakarta.transaction.UserTransaction> userTransaction, io.vertx.core.Vertx vertx, SchedulerConfig schedulerConfig, jakarta.enterprise.inject.Instance<io.quarkus.scheduler.spi.JobInstrumenter> jobInstrumenter)
  • Method Details

    • produceQuartzScheduler

      @Produces @Singleton org.quartz.Scheduler produceQuartzScheduler()
    • getScheduler

      public org.quartz.Scheduler getScheduler()
      Specified by:
      getScheduler in interface QuartzScheduler
      Returns:
      the underlying Scheduler instance, or null if the scheduler was not started
    • pause

      public void pause()
      Specified by:
      pause in interface io.quarkus.scheduler.Scheduler
    • pause

      public void pause(String identity)
      Specified by:
      pause in interface io.quarkus.scheduler.Scheduler
    • isPaused

      public boolean isPaused(String identity)
      Specified by:
      isPaused in interface io.quarkus.scheduler.Scheduler
    • resume

      public void resume()
      Specified by:
      resume in interface io.quarkus.scheduler.Scheduler
    • resume

      public void resume(String identity)
      Specified by:
      resume in interface io.quarkus.scheduler.Scheduler
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface io.quarkus.scheduler.Scheduler
    • getScheduledJobs

      public List<io.quarkus.scheduler.Trigger> getScheduledJobs()
      Specified by:
      getScheduledJobs in interface io.quarkus.scheduler.Scheduler
    • getScheduledJob

      public io.quarkus.scheduler.Trigger getScheduledJob(String identity)
      Specified by:
      getScheduledJob in interface io.quarkus.scheduler.Scheduler
    • newJob

      public io.quarkus.scheduler.Scheduler.JobDefinition newJob(String identity)
      Specified by:
      newJob in interface io.quarkus.scheduler.Scheduler
    • unscheduleJob

      public io.quarkus.scheduler.Trigger unscheduleJob(String identity)
      Specified by:
      unscheduleJob in interface io.quarkus.scheduler.Scheduler
    • start

      void start(@Observes @Priority(0) io.quarkus.runtime.StartupEvent startupEvent)
    • destroy

      void destroy(@Observes(notifyObserver=IF_EXISTS) @BeforeDestroyed(jakarta.enterprise.context.ApplicationScoped.class) Object event)
      Need to gracefully shut down the scheduler making sure that all triggers have been released before datasource shutdown.
      Parameters:
      event - ignored
    • destroy

      @PreDestroy void destroy()
    • initStartMode

      SchedulerRuntimeConfig.StartMode initStartMode(SchedulerRuntimeConfig schedulerRuntimeConfig, QuartzRuntimeConfig quartzRuntimeConfig)
    • createJobDefinitionQuartzTrigger

      QuartzSchedulerImpl.QuartzTrigger createJobDefinitionQuartzTrigger(QuartzSchedulerImpl.ExecutionMetadata executionMetadata, io.quarkus.scheduler.common.runtime.SyntheticScheduled scheduled, org.quartz.Trigger oldTrigger)