Changes between Initial Version and Version 1 of JobQueueRewrite


Ignore:
Timestamp:
10/29/10 01:43:18 (16 years ago)
Author:
Raymond Wagner
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • JobQueueRewrite

    v1 v1  
     1= Task Rewrite of JobQueue =
     2This is a list of goals for the rewrite of the JobQueue.
     3
     4== MythSystem ==
     5* Expand myth_system to a full featured class, to replace existing uses of myth_system, popen, and QProcess.
     6* Support both direct execution, and execution through bourne shell.
     7* Support input and output pipes, as well as buffered output (for 64KB pipe limit) managed by the reaper.
     8* Allow independent timeouts for wait call and automatic termination.
     9* (optional) Expand reaper to pull CPU usage.
     10* (optional) Allow CPU time limits on processes in addition to real time limits.
     11
     12== JobQueue ==
     13* Move user job definition out of `settings` table and into dedicated table, to allow an arbitrary amount of user jobs.
     14* Allow per-machine, per-command time constraints for jobs to run between, with the option to forcefully terminate when the run window has closed.
     15* Remove special handling of transcode and commflag jobs. Each transcode profile would be given an independent command, and any custom status updates should be performed by the external command.
     16* Set master backend as a job scheduler, doling out tasks to available connected machines.  The existing system is effectively a 'free-for-all'.
     17* (optional) Migrate mythfilldatabase and any other external 'housekeeping' processes to the jobqueue.
     18* (optional) Improve support for use of jobqueue in MythVideo, and other non-recording related tasks.
     19* (optional) Allow maximum CPU time limits, and termination of idle tasks, to prevent deadlocked tasks.
     20* (optional) Allow automatic scaling of concurrent jobqueue tasks. Preferably this would run properly without configuration, and can track both CPU and IO usage.
     21* (very optional) Create repository for job scripts, similar to the new theme downloader.