4

I am looking for a solution, or a set of solutions with the following components:

  1. Job Scheduler - run a specific job on a specific schedule. I have seen Quartz.NET and it seems like a good framework, however I have not found it to have integrations with the components that follow.

  2. Job Runner - run a job, loaded as an AppDomain, from a directory, or from a binary stored in a database. This is of course in addition to running jobs passed in as direct references. Also, this component would be integrated with the job scheduler. Moreover, it should be possible to control this component via WCF, or the like. I would like the ability to view currently running jobs, schedule a new job by pointing to a file path, or database row, or stop a job.

  3. GUI - communicate with the Job Runner and provide a GUI shell which would expose all of the functions of the job runner. Something like the SQL Server Agent shell.

One of the things I would like to achieve with this is the ability to deploy and run a C# job with the same ease as it would be to run a SQL script through SQL Server Management Studio.

WhiteKnight
  • 4,938
  • 5
  • 37
  • 41
eulerfx
  • 36,769
  • 7
  • 61
  • 83
  • 3
    Why not just schedule a task to run the C# app: http://support.microsoft.com/kb/308569 – OMG Ponies Sep 02 '09 at 23:42
  • Rexem: +1 for "I wish my company would use this and kill CA7". – tsilb Sep 02 '09 at 23:58
  • that could be an option but I was looking for something with a GUI that you can view over a network, maybe a web interface and easy programmatic access via c# for job execution and deployment – eulerfx Sep 03 '09 at 01:18
  • you can actually wrap the Windows Scheduled tasks and just present the Panes that you want the user to modify. With the New API available in Vista etc, you can even put your Schedules in a Subfolder etc. – Paul Farry Sep 03 '09 at 04:45
  • @rexem: +10 seriously. Loading the system with new programs taking resources to duplicate what one already does exceptionally well = exceptional fail. – Sam Harwell Oct 23 '09 at 17:06
  • appliedalgo.com - does everything from scheduling, execution management (persistence+tracking of execution history/parameters/results), load balancing. Their load balancing implementation calculates "Host Score" based on CPU/Memory usage and Disk Activity (With override too), and simple "Extension API" accessible from both .NET and Java clients. I don't think they support jobs abort/cancels however. This said. it's a completely standalone server app with its own GUI so you can recall execution param and results and make quick comparisons. It's specifically for number crunching on Windows. – Swab.Jat Jan 02 '14 at 07:33

4 Answers4

2

A bit late I imagine, but could still be useful for others.

Here's a project I've spent quite a bit of time with that seems to fulfil most the requirements stated. It's also what we use internally, so I do try to keep it updated.

https://github.com/DawidPotgieter/BackgroundWorker

It's pretty similar to Quartz, but more focussed towards managing jobs and their data.

Dawid Potgieter
  • 109
  • 1
  • 3
2

Here's an interesting one:

http://research.microsoft.com/en-us/projects/Dryad/

NotMe
  • 87,343
  • 27
  • 171
  • 245
0

I've been playing with DryadLINQ. If you are looking for a distributed job execution engine its definitely worth a look. It does make you write as much code as possible in LINQ though, because it parses the linq execute tree and figures out how to distribute the linq execution across all nodes in the cluster.

Turbo
  • 2,490
  • 4
  • 25
  • 30
0

There is a wikipedia page that lists job schedulers (most are commercial solutions). We use a .NET solution called JAMS - there is a free dev version since there is no way my company would pay $10k+ for this.

akjoshi
  • 15,374
  • 13
  • 103
  • 121