Suppose your web application needs to run something on a periodical basis. Say for example every day at midnight you want to send a quote to all your subscribers. So you need a scheduler that can trigger off a process which will call appropriate action in your application that will get a quote from the database, get the list of subscriber’s mail id and send out a mail to each subscriber. This scheduler is the key to make sure that a specific action gets triggered in your application at a scheduled time. The following are the job scheduling frameworks available for different technologies.
- J2EE - Quartz
“Quartz is a full-featured, open source job scheduling system that can be integrated with, or used along side virtually any J2EE or J2SE application - from the smallest stand-alone application to the largest e-commerce system. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs; jobs whose tasks are defined as standard Java components or EJBs. The Quartz Scheduler includes many enterprise-class features, such as JTA transactions and clustering.
Quartz is freely usable, licensed under the Apache 2.0 license.”
- .Net - PortSight
“Schedule and run server-side tasks from your ASP.NET applications. PortSight Task Scheduler is a component for ASP.NET applications that can be used for scheduling an immediate or recurring execution of server-side tasks. Since the tasks are executed on the server, they can run asynchronously and under a privileged account. It allows you to execute long-running and resource intensive tasks. You can also serialize your tasks to avoid concurrent access to shared resources and possible locks, which makes your applications more robust and available”
PortSight is commercial but is available for trial.
- Ruby on Rails - RailsCron
“RailsCron is a way to execute background tasks using your Ruby on Rails environment. The RailsCron object is an ActiveRecord, so you can manipulate it in familiar ways”
Also a ruby program can be written to run as cron job. The book “Enterprise integration with Ruby” has some insights on creating services and daemons.