[Chicago-talk] Cron replacement
sean at blanton.com
Mon Oct 11 10:27:47 PDT 2010
I have similar needs for scheduling Perl script execution, and my goal is to
use Terracotta Quartz via Java to execute Mojo jobs (which manage and run
Perl execution). Mojo is for more general job execution than Hudson, which I
find too simple and build-focused. Quartz has lots of features, like it
understands holiday calendars - use a standard one or supply your own.
The advantage of using Mojo is that you have a real time monitoring display
from any client, and you get structure around executing Perl scripts or any
other cmd line, like Git, including keeping arguments and environment
variables. It has a web interface that will show HTML-wrappered logs, job
summaries and execute jobs, and it also has a standalone Eclipse RCP GUI,
which can instead be as plug-ins in to an existing Eclipse. So, while quartz
may execute the Mojo job via a cmdline program, Mojo will execute the Perl,
managing chaining or parallelization, capture the Perl output in HTML,
assess success or failure, display red or green lines in the job monitor,
email you a link to the HTML log, etc.
With the job monitor, you can click a green or red line information line
corresponding to a job step/perl script execution and it will pop up the
HTML log. This lets you see within seconds of a failure the Perl stack trace
from another machine on your desktop - that really helps me in my current
Disclosure: Mojo is from my former employer OpenMake Software (in which I
still have a microscopic share) and I had a hand in the design of features
specifically for executing Perl-based jobs, but I had no hand in any bugs as
I only helped in design ;) In my new job, I tried to give Hudson a fair
evaluation, but it didn't have enough of the features I liked and was used
to in Mojo. Clearly I'm still excited about using Mojo.
Although Mojo is free, I'd recommend the few hundred dollars for a support
contract if you can afford it.Being more general and sophisticated than
Hudson also means more pieces to get working and more setup time. Support is
very personal and responsive. Also, if you want to execute jobs on many
servers, I think you have to buy additional agents, but I used Perl that
looped over machines using ssh to Linux and WMI for Windows instead of
having to install a Mojo agent on every machine, which wasn't very practical
regardless of cost.
Quartz is free, too - you may only get some queries from their sales staff
asking if you want to buy some related enterprise software.
So far, I've gotten a Java program to use Quartz to schedule and execute a
Perl-script-Mojo-job via Mojo's Java API, but I haven't coded in all the
special scheduling needs due to priorities. I'm using Mojo's cron-like
scheduler, ironically based on Quartz, in a brute force approach where jobs
execute on holidays, but nothing bad happens.
Sean Blanton, Ph.D.
On Sat, Oct 9, 2010 at 3:21 PM, Tom Printy <tprinty at mail.edisonave.net>wrote:
> How about hudson http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson
> On 10/9/10 3:18 PM, Michael Potter wrote:
>> I am looking for a batch processing control program and hope that
>> something has been written in Perl.
>> Some features I am hoping this cron replacement would have:
>> 1) a web interface that would allow the system administrator to
>> suspend all or select tasks.
>> 2) web interface should also display which tasks are currently running.
>> 3) support complex start times such as each weekday as long as that
>> day is not a holiday.
>> 4) start tasks a specified number of minutes after it previously finished.
>> 5) start tasks only after a set of previously specified tasks finish
>> 6) track runtimes so unusual runtimes can be identified.
>> I see a program called norc written in Python, but I don't think
>> Python will fly at the client site.
> -Tom Printy
> Office Hours: M-F 9:00am CT to 12:00pm CT
> Chicago-talk mailing list
> Chicago-talk at pm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Chicago-talk