Title: Tasks and Prompts -- Implementing Simple Work Queues Author: R. S. Doiel Date: Sun, 28 Feb 2010 00:50:22 GMT Node: v0.1.103
Sometimes all you really need is orderly execution not blocking I/O to get the job done. Tasks and prompts is a light weight implementation of the work queue design pattern.
Implementing Simple Work Queues
The other day I was converting a couple Bash installer scripts to node scripts. I recognized a familiar design pattern -- the work queue. Here's the requirements for a typical work queue approach -
- tasks are queued, first in first out (i.e. tracked)
- tasks once started continue without further intervention
- tasks are independent (i.e. task A does not depend on task B or visa versa)
- tasks are execute once
- tasks fired in sequence without concern for when they complete
- some tasks required a prompt and response before firing
- I wanted to queue tasks and prompts before running the work queue
In this simple example I prompt the user to answer a question then count to three. Pretty trivial but it's an implantation of a the work queue pattern. That pattern is common in installation or management scripts. The only problem with the example above is that it isn't setup as a node module ... wait I did that already! See github.com/rsdoiel/nshtools. nshtools.js includes a more elaborate implementation and with features like command line option processing and high level file commands like cp and mv. The github wiki and the README.md file for nshtools have some more short examples for your enjoyment.