...
- Quartz configuration API is in org.openhubframework.openhub.core.config.QuartzConfig package
- jobs and triggers are defined with the following annotations (package org.openhubframework.openhub.api.common.quartz)
- QuartzJob - defines one quartz Job with simple trigger QuartzSimpleTrigger or cron trigger QuartzCronTrigger
- defines execute type in the cluster (JobExecuteTypeInCluster):
- CONCURRENT - job can be executed parralel on nodes
- NOT_CONCURRENT - job can run only on one node
- defines execute type in the cluster (JobExecuteTypeInCluster):
- QuartzSimpleTrigger - this type of trigger is used to fire a job repeated at a specified interval
- QuartzCronTrigger - this type of trigger is used to fire a job at given time, defined by Unix 'cron-like' schedule definitions.
- QuartzJob - defines one quartz Job with simple trigger QuartzSimpleTrigger or cron trigger QuartzCronTrigger
...
- we use directly Quartz job scheduler, not Camel-quartz component
- implementation classes are in org.openhubframework.openhub.core.common.quartz package
- basic implementation is in the class org.openhubframework.openhub.core.common.quartz.scheduler.DefaultScheduler that creates all defined scheduled jobs
- information about concurrent jobs (=CONCURRENT) are stored in memory
- information about not concurrent jobs (=NOT_CONCURRENT) are stored in database - quartz uses default database schema for storing scheduled jobs (for H2 DB defined in db/db/migration/h2/V1_0_2__schema_quartz.sql in in our project)
- scheduler is started by org.openhubframework.openhub.core.common.quartz.scheduler.QuartzSchedulerLifecycle
...