So every good project starts with a bit of planning. The project that I submitted is to be a PHP interface to scheduling PHP scripted jobs. To put it another way, if implemented properly, it will provide an API for asynchronous execution of PHP jobs.
I plan on offering Soap and Restful services as well as a direct PHP OOP interfaces to the schedule. There will be a Web UI for managing and monitoring jobs. The idea is simple and familiar. You may just use cron on *NIX or at/Scheduler on windows.
I plan on starting small. My first goal is to build an OOP way of scheduling a script to run. On top of that I will need to add the web interface. Then I will add REST and then SOAP. Exposing such a thing externally will require an authentication mechanism. I am not sure how best to do this so I will experiment a little. If I have time I want to make a installer to set the master process. Maybe take advantage of some additional specific windows functionality and expanding from there and we will see where it goes.
- The base functionality I want to achieve is:
- general read/write to the OS scheduled jobs
- schedule/retrieve/delete a PHP script to run
- allow for the passing of parameters to the script
- allow for various methods of scheduling (relative, absolute, reoccurring)
- check the status of a scheduled job
As time permits and as the project develops I want to add the following functionality:
- query jobs of certain statuses
- control weather a job is active or not
- schedule a job on metrics other than time (ASAP, server load, when another job is finished, priority)
- job dependencies
- managing multiple servers from one Web UI
- high level reporting
Also, as I go I am completely open to other features.