Task automation software on Windows servers [closed]
We don’t allow questions se开发者_如何学JAVAeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this questionWe currently have Java program which runs a multitude of tasks on our Windows servers, we are planning to replace that with an open source task automation software for efficiency and maintainability reasons.
The following are the features we are looking for:
- Ability to run tasks/scripts in any language (Java, C#, Python etc..)
- Schedule the tasks at any instant (12:00 AM 12/16/2010) or run them at specific intervals (Every 10 minutes).
- Ability to notify the admin if a task execution failed and preventing them to run again.
- Parallel execution of independent tasks and ability to set dependencies between tasks.
- Ability to priortize and preempt the tasks when needed without restarting the software.
- Reporting capabilities on how long each task took etc.
- Remotely adding, deleting and monitoring the progress of tasks which are being executed
Please let me know if you know of any great open source solutions which address all or most of these needs. Thanks for your help!
You can try using Hudson, the opensource Continuous Integration system for doing this. It provides most if not all of the features you are asking for. Each task (or call it "project" in the Hudson lingo) can be scheduled periodically, or via a SCM trigger, or a curl call using the tokenizer URL. You can interlink jobs as downstream projects, and can also execute them parallelly among various boxes. It has great error reporting capabilities, and archives all the build logs, error reports and supports various formats like junit to generate you colorful plots showing the trends of your job success rate, test metrics etc.
Refer this to get started off:
http://wiki.hudson-ci.org/display/HUDSON/Use+Hudson
You can schedule the tasks by creating them as Maven targets (or ant, Makefiles anything for that reason; it can run any script so it is quite flexible) The email notification is quite useful to notify is the jobs are failing or unstable.
Moreover, Hudson comes with a bunch of opensource plugins, and is very useful. Hope that helps.
Have you considered Quartz.Net ?
Some highlighted features below.
Job scheduling
- at a certain time of day (to the millisecond)
- on certain days of the week
- on certain days of the month
- on certain days of the year
- not on certain days listed within a registered Calendar (such as business holidays)
- repeated a specific number of times
- repeated until a specific time/date
- repeated indefinitely
- repeated with a delay interval
Clustering
- Fail-over.
- Load balancing.
Listeners & Plug-Ins
- The Plug-In mechanism can be used add functionality to Quartz, such keeping a history of job executions, or loading job and trigger definitions from a file.
- Quartz ships with a number of "factory built" plug-ins and listeners.
Although support for Windows is still experimental or under progress, you can look into:
Puppet
http://projects.puppetlabs.com/projects/1/wiki/Puppet_Windows
and
Chef
http://wiki.opscode.com/display/chef/Installation+on+Windows
http://support.rightscale.com/12-Guides/Windows_User_Guide5_Configuring_Windows_Servers/Using_Chef_on_Windows
Have you researched PowerShell? It has the ability to call .net libraries, any type of executable and any type of script. You can script complex workflows with parallel tasks and sequential tasks. You can write to the Windows Log, send email notifications, write logs in a variety of formats, etc. If you run the scripts from Task Manager, you can remotely start, monitor and stop any task. It's free.
精彩评论