2009 WinPHP Challenge: the plan

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.

Advertisements
2009 WinPHP Challenge: the plan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s