I'm Keyvan Nayyeri, a 25 years old Ph.D. student at
the Computer Science department of
the University of Texas at San Antonio.
I'm also
a Software Architect and Developer and previously held a B.Sc.
degree in Applied Mathematics.
This is my blog where I publish content about various topics specifically Programming Languages and Compilers, Software
Engineering and Programming.
Recently I published a couple of blog posts about building a simple ASP.NET task scheduling system in a practical way and with a basic example (Part 1 and Part 2).
Per comments and feedback from some visitors, especially a dear and respectful friend like Dave Burke, I also promised to publish my general framework for task scheduling as a part of an open source project. Today I found some free time to start this and created a CodePlex repository for the project.
Finding an appropriate name for the project was not easy and I usually end up with special names such as names of places and areas when I get stuck in these situations! So I ended up with another special name for this project like Abidar.
Abidar is the name of a beautiful mountain in great Kurdistan near Sanandaj and a great place to visit! Abidar has one of the best natures that I could ever seen in the country!
However, Abidar is started on CodePlex and I’m going to add the initial code as soon as I can find some free time to do that. Abidar is licensed under The MIT License to let everyone use it easily and without restrictions in the other projects.
My plan is to release separate versions for ASP.NET 2.0 and 3.5 to have the best compatibility for everyone.
Stay tuned! We’ll upload the first code package very soon!
Mahdi Taghizadeh
Jul 01, 2008 5:21 AM
#
Dear Keyvan!
Great news! Thank you so much and I'm waiting for production release as soon as possible ;-)
Dew Drop - July 1, 2008 | Alvin Ashcraft's Morning Dew
Jul 01, 2008 7:26 AM
#
Pingback from Dew Drop - July 1, 2008 | Alvin Ashcraft's Morning Dew
First Approach to an ASP.NET Task Scheduler
Jul 01, 2008 6:23 PM
#
First Approach to an ASP.NET Task Scheduler
ThatGuy
Jul 07, 2008 5:34 AM
#
Windows workflows can form the basis of a fairly solid task scheduling system. Maybe you could create a very simple workflow that utilises delays, a while loop, and a custom activity a little less restrictive than the CallExternalMethod activity, which allows your workflow to call "scheduled" methods in external assemblies.
A single class TaskScheduler engine could host the workflow instance(s) and manage "discovery" of scheduled tasks. By discovery i mean that there might be several ways a developer or end user might want to "register" a task to be scheduled.
For example a developer requires a method that might poll a Db, so they simply write the method, then decorate it with a custom attribute something like:
[ScheduledTask(Runat="10:00am", Frequency="Daily")]
So one of the discovery methods would be reflecting an assembly. So a DisoveryService something like FileSystemDiscoveryService might exist, which would enumerate all decorated public methods in all assemblies in a given folder, the paths being defined by a custom config section :-)
Of course to give some flexibility in your scheduling, Sql Workflow Persistance might be used for tasks with scheduled frequnecy > 12 hours, and In-Menory workflow persistance might be more efficient for tasks which are to be called regularly. Some utility classes would be needed to calcuate TimeSpans for first run and execution time - these would be exposed to the delay activity in your sequential workflow.
You could also provide a simple UI type interface for non technical users - just add a WCF endpoint connected to a simple discoery service and a simple web page?
Ensure any exeptions in the sequential workflow are logged and handled, you probably don't want exceptions killing the sheduling depending on the servirity.
Just thinkin out loud :-)
Abidar 1.0 Beta 1 : Keyvan Nayyeri
Jul 18, 2008 11:23 AM
#
Pingback from Abidar 1.0 Beta 1 : Keyvan Nayyeri
Raj
Jul 26, 2008 2:34 AM
#
Its very nice code. We want some improvements over that code
Leave a Comment