Introducing the Scalr Scheduler
Today Scalr released the Scheduler, a Cron Job task manager designed for Cloud environments.
The problem is that Cron jobs, which are scripts that are executed periodically, were up until now tied to individual servers. When that individual server failed, the Cron job wouldn't be executed. When that server was scaled, it would be executed once per server. This means that the tasks you set to be executed once per hour, could be executed 5 times in the hour, or not at all - not very reliable, to say the least.
Scalr based the Scheduler off Apache ZooKeeper, which is a part of Hadoop. It is a centralized service for providing group services, especially distributed lock services. The Scheduler extends Scalr's scripting interface, and allows you to write scripts and set their execution schedule and scope: once on all servers, every hour on a subset of servers, daily on a single server, and any other combination!
As always, the code is available on Google Code and delivered as a service at scalr.net.
***
You can find the Scheduler under the Tools menu, found at the top when logged in:

You can schedule tasks to be executed periodically using the Scalr Scheduler
To add a Cron job or schedule a script, click the + icon next to the Search box:
You can then select the script to be executed, choose the parameters for it, schedule a time or interval, and run!


May 3rd, 2010 - 09:47
How about adding the ability to run on just one instance of a certain role?
And in the mysql role be able to run just against the master.
I have a cron setup on the master that this would be very useful for in terms of not having to remember to reset the cron is the master db goes down and a slaves is promoted.
July 19th, 2010 - 15:50
Yep, this is perfect for this use-case.
August 23rd, 2010 - 12:09
What happens if you schedule a recurring job on an instance, and that instance is terminated?
August 24th, 2010 - 01:15
You simply schedule the job to be executed, and Scalr is in charge of finding an instance to execute the job on. If an instance has been terminated or simply is unresponsive, Scalr will ask another instance of the same Role to run it. Easy!