![]() |
Platforms, Frameworks & Libraries »
.NET Framework »
Utilities
Intermediate
License: The Code Project Open License (CPOL)
Zeta SchedulerBy Uwe KeimAn application that helps you in starting tasks at predefined times and with various dependencies. |
C#, .NET (.NET3.5), SQL-Server (SQL2005, SQL2008), Dev, SysAdmin
|
||||||||||||
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

Zeta Scheduler (ZS) is an application that helps you in starting tasks at predefined times and with various dependencies. In contrast to the Windows Task Scheduler, ZS has more/other features that makes it more flexible, providing features that are not available otherwise.
We started developing ZS for a client after he found no state-of-the-art replacement for a tool called "Norton Scheduler" which dated from around mid 1990's. We found no other tool available on the market that matches the features of Norton Scheduler and the new requirements of our client.
Therefore we developed ZS together with our client.
Currently, Zeta Scheduler is in public beta test.
This means:
ZS consists of two applications: An application called Zeta Scheduler Manager (ZSM) and an application called Zeta Scheduler Scheduler (ZSS).
ZSS is a console application that is running on each computer that you want to run scheduled tasks. ZSM is a Windows GUI application that is running on one computer to manage all computers running ZSS.
In addition, a central Microsoft SQL Server database is being accessed by all ZSS and ZSM instances to read and write configuration settings.
ZS allows for defining tasks that can execute either depending on date/time settings or depending on each other. The follown modes are supported:
In addition you can configure a task to not run on public holidays (which are configurable, too).
Each task can be configured to generate notifications upon successful finish and/or when finished with errors. Notifications can be sent to any of the following targets:
Each notification can be configured to be sent to multiple targets simultaneously with configurable notification texts.
The concept of a "job" contains all the definitions of an actual task to be scheduled. A job is contained in a global repostitory of jobs, allowing to easily assing one job to multiple tasks (optionally on different computers) thus simplifying the creation and assignment of tasks.
A job contains the following major settings:
A "Computer" identifies a machine that is running the ZSS application. In the central ZSM management application you can create an arbitrary number of computers and assign tasks to it.
Settings fo a computer contain:
For most settings (like job definitions or notification settings), you can use placeholders that are expanded during runtime. This enables you to minimize hardcoding of information, making the application easily transferable to other systems.
Some example placeholder among the more than 70 placeholders include:
This section assumes that you are familiar with:
To successfully set up the ZSM and the ZSS components you need the following prerequisites:
The setup components package consists of:
First, download the deployment setup and run it. The deplyoment setup brings all the required files to your local computer (to the desktop by default) but does not actually install any components. This must be done manually during the beta stage.
After you run the deployment setup, you find the following child folders in the installation folder (default: "C:\Users\YourLogInName\Desktop\Zeta Scheduler"):
In order to install the database, follow these steps:
You have successfully configured the database structure. Please ensure that you add the new database to your maintainance plan to ensure it will be backed up.
The ZSM management application is your central GUI for configuring and administering all ZSS instances. To install, perform the following steps:
The default connection string to adjust in item 4.) reads:
connectionString="data source=EnterYourDBServerHere; initial catalog=EnterYourDatabaseHere; Integrated Security=False; User ID=EnterYourUserIDHere; Password=EnterYourPasswordHere"
If you are unsure how to exactly form your connection string, you may want to visit the website ConnectionString.com which contains various examples.
for each computer where you want tasks to be scheduled with ZS, you have to copy and configure an instance of the ZSS executables:
Repeat the steps 1. to 5. for each computer where you want tasks to be executed with ZS.
If you have errors during installation, check the following items:
Once you have successfully installed the database, ZSM and the ZSS instances, you have an empty installation that you have to configure before actually running.
This chapter tells you how.
The main window of the ZSM management application consists of a ribbon menu at the top of the window. Use the ribbon menu items to perform various actions.
Below the ribbon area is the main tree list that displays all computers, tasks and child tasks. The columns from left to right display information about the state of a task and other useful values.
On the left side of each node in the main tree list, a colored square icon is being displayed which shows the cumulated state of an element and all child elements in an easy-to-remember traffic light color range:
Create a new root element "computer" for each computer where you have a ZSS instance running:
Jobs are the building blocks for the actual tasks. Define one or more jobs to later use them when defining tasks. Each job can be used by multiple tasks.
Repeat those steps to add all required jobs. Of course you can define jobs later as you need them.
Notifications enable you to configure whether/how the successful/erroneous exit of a task will be notified. You define notifications in a global repository and assign them later to the actual tasks to run.
To define a notification:
To configure global notification settings:
Please note that the notification settings are being used for all computers running the ZSS application. This means that when e.g. configuring an SMTP server you have to ensure that all computers are allowed to send e-mail messages through this server.
After you have defined your jobs which serve as the base for the tasks, you can start adding tasks.
Since tasks can be added both to computers as root tasks and to other tasks as child tasks, it is important which element you select in the main window tree list.
To add a root task to a computer, perform the following steps:
Repeat the above steps for all root tasks you want to add.
To add a child task to an existing task, follow these steps:
Repeat the above steps for all child tasks you want to add. Please note that you can nest tasks indefinitely.
In order to compile and run the provided source code by yourself, the following requirements must be present:
You also need to set up and configure a database and adjust the ZSM and ZSS configuration files just as previously described in the "Setup" section.
The used Zeta Enterprise Library is also available in a separate article.
In this article I've introduced a replacement/extension to the Windows Task Scheduler.
When voting, please notice that I put my article in the "Utilities" section, so I assume it is safe to not post any source code explanations in the article itself. Thanks.
A last word about the source code: Since the source code is approx. 30 MB, I decided to put it on an external server since it exceeds the allowed size limit of CodeProject.com.
The reason for the large size is that the download contains DLLs to allow for successful compilation of the Visual Studio solution.
So my decision was to prefer a compilable code over size. If you disagree, please comment and I will provide an alternative source download.
| You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads.
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 16 Jan 2010 Editor: |
Copyright 2009 by Uwe Keim Everything else Copyright © CodeProject, 1999-2010 Web21 | Advertise on the Code Project |