github.com/p-weisk/gojobqueue (go): Jobs consist of one function that will be executed, and one function that will be called when the first function returns an error, e.g. in order to roll back changes or clean up.  First, create a new Queue with a buffer size using the make function. If you do not use a buffer, Adding Jobs will block until the Queue is empty, rendering it rather useless. You can Add jobs to it at any time using AddJob. Whenever you are ready to start executing Jobs, call StartWorking. You can still add jobs afterwards. When you're done with the Queue, you can call Close on it. This will close the underlying channel.
Keywords: go|golang|queue