2010-05-12 23:33:50 +02:00
|
|
|
Task spooler is a Unix batch system where the tasks spooled run one after
|
|
|
|
the other. The amount of jobs to run at once can be set at any time. Each
|
|
|
|
user in each system has his own job queue. The tasks are run in the correct
|
2011-12-10 21:41:01 +01:00
|
|
|
context (that of enqueue) from any shell/process, and its output/results
|
|
|
|
can be easily watched. It is very useful when you know that your commands
|
|
|
|
depend on a lot of RAM, a lot of disk use, give a lot of output, or for
|
|
|
|
whatever reason it's better not to run them all at the same time, while you
|
|
|
|
want to keep your resources busy for maximum benfit. Its interface allows
|
|
|
|
using it easily in scripts.
|
2010-05-12 23:33:50 +02:00
|
|
|
|
|
|
|
Features
|
|
|
|
|
|
|
|
Task Spooler allows one to:
|
|
|
|
|
|
|
|
* Queue jobs from different terminals.
|
|
|
|
* Use it locally in the machine (not as in network queues).
|
|
|
|
* Have a good way of seeing the output of the processes (tail,
|
|
|
|
errorlevels, ...).
|
|
|
|
* Easy use: almost no configuration.
|
|
|
|
* Easy to use in scripts.
|
|
|
|
|
|
|
|
At the end, after some time using and developing ts, it can do something
|
|
|
|
more:
|
|
|
|
|
|
|
|
* It works in GNU systems with the GNU c compiler (Linux, Darwin,
|
|
|
|
Cygwin, FreeBSD, etc).
|
|
|
|
* No configuration at all for a simple queue.
|
|
|
|
* Good integration with renice, kill, etc. (through `ts -p` and process
|
|
|
|
groups).
|
|
|
|
* Have any amount of queues identified by name, writting a simple
|
|
|
|
wrapper script for each (I use ts2, tsio, tsprint, etc).
|
|
|
|
* Control how many jobs may run at once in any queue (taking profit of
|
|
|
|
multicores).
|
|
|
|
* It never removes the result files, so they can be reached even after
|
|
|
|
we've lost the ts task list.
|
|
|
|
* Transparent if used as a subprogram with -nf.
|
|
|
|
|