- Flexibility of executing different tasks.
- Flexibility on defining the time definitions (date ranges, periodicity etc).
- Multi-platform (Windows, Linux).
- Capability of executing tasks on different computers.
- Capability of running scripts on SQL and Oracle databases.
- Programmable by an external program.
In addition there are several constraints:
- There is little development time until use of the basic functionality is required.
- The solution must be easy to integrate into the system.
There are several possible solutions:
- Windows scheduler.
- Linux cron.
- Cron port to windows
- Using known external application
- Specific software written to suit the requirements
- Using Data Base scheduler.
Each solution has its benefits and drawbacks but we can divine them into two groups:
– Custom solutions, where software is developed: this option provides the maximal flexibility, but it take development effort and will require bug fixing
– Use off the shelf software, where integration is required: this option requires little development time, but a lot of integration and some limitations will be inherent to the solution.
A third group would be using an open source solution, which is closest to the requirements but can be modified to suit our specific requirements. Of course, legal implications need to be considered, and some effort for learning the existing software is required.
For the problem at hand, using the DB scheduler is the preferred way as it mixes a bit of both:
- The scheduler itself is off the self and included in the DB.
- The integration was already done and we use it to schedule maintenance tasks.
- The development time for this solution is not large.
This is a real case of tradeoff analysis for selecting a solution. There is no right way, so the solution takes into account what is the most suitable in this specific case.