Quartz vs Java EE 7 scheduler

jakarta-ee, java-ee-7, quartz-scheduler

Solution

I believe that in future projects, there's really no need to use third-party libraries. Java EE 7 is full of scheduling features. Besides the new `ManagedScheduledExecutorService`, there's already the `Schedule` annotation for single and periodic repeating tasks and the `Timeout` annotation to create timers programmatically. IMO the new managed scheduled service is better suited for single delayed tasks or to create a job chain with delays betweens specific tasks.

You can find more about Java EE Timer Service (`Schedule` and `Timeout`) Java EE 6 or Java EE 7.

On a side note, if you ever try clustering your application, it's relatively easy to setup `Schedule`-like timers to run globally, instead of once per node - which is another plus.

Problem

I'm a java EE developer which has used until now frameworks like Quartz to schedule tasks. I can see that Java EE 7 features a ManagedScheduledExecutorService to schedule single or repeating tasks. As I have never used in real projects this new features I wonder if there are still advantages of using Quartz (or others) when you have a portable way to do it ? Thanks!

Original source