Search code examples
quartz-schedulerjobsquartz

Difference between quartz and quartz-jobs


There are 2 dependencies for quartz. The dependency quartz(1st option below) has all the basic required classes needed for a basic job scheduling and execution. What is quartz-jobs used for?

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.0</version>
</dependency>
<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz-jobs</artifactId>
    <version>2.3.0</version>
</dependency>

Solution

  • quartz-jobs.jar contains various optional Quartz job implementation classes that you can use in your application. There are jobs that can:

    • invoke an EJB method
    • run a native process (i.e. executable app/script)
    • invoke a listener if a configured file's "last modified at" timestamp changes
    • enqueue a JMS message in a configured JMS destination / topic
    • invoke a JMX bean method
    • send an SMTP message (email) to the configured recipient

    For details, please refer to Quartz javadoc (check all classes in org.quartz.jobs package and sub-packages).