I’m building a personal Web application using Java EE 6 Technologies (the container is an application server, Jboss AS 7). I’m starting from scratch to create
repetitive background tasks, I identified two possible scenarios :
- Scheduled tasks (e.g, sending bulk mails every sunday night)
- Trigger tasks based on web event (e.g,running some long background updates from a web action)
What I want to avoid (I don’t know if is posible) is to have some background task scattered around my platformm (some of them using cron, others using TimerTask, db jobs, etc..) becoming difficult to maintain.
What are the different approaches to handling repetitive background tasks in a Java web application, taking into account the two previous requirements ?
Related:
With EE6 you can get rid of Quartz for almost all situations using the TimerService with @Timeout annotations.
And you dont need to write a line of XML to get it working.
There is a nice example in the EE Night Hacks book, also available as source here.
You can add a Timeout method to a bean processing your trigger web events. This way, they can be maintained in one place. You can also modify the timer settings by trigger events.