UNIX-ey command line interface for Disque
Current command line client looks a bit like whateversql CLI tool: suitable for management and debugging, but not very suitable to implement Discue-facing services in Bash or in general using command line world.
Is there already a client that starts a script for each job and acknowledges it when script exits successfully?
Job data can be fed to stdin, queue name and job id can be command line parameters.
I expect something like this:
$ cat > myscript <<\EOF
#!/bin/sh
# $1 and $2 are parameters specified in the disque-spawner
echo "Serving a job $3 from queue $4" >&2
sleep 5 # pretend to be working hard[ly]
wc
EOF
$ chmod +x myscript
$ disque-spawner -h <hostname> queue1 queue2 ... queueN --execute ./myscript script_parameter1 script_parameter2 &
$ disque-post -h <hostname> --wait queue2 < myfile.txt
D-e09bb425-Ht6sbFnDQ5jbmxELCwJAgHKU-05a1
$
disque-spawner should start specified command for each incoming job. It should periodically do WORKING if the comand is working, ACKJOB if command is finished with exit status 0 and NACK if finished with exit status not 0.
If not, where should such be implemented:
- As a separate project, like for language bindings
- As separate command line tools inside this repository
- As a special mode for usual
disque-cli.c?
Prototype as bash scripts: https://gist.github.com/vi/72a15ad557f1ce80f7ad
@vi I'm developing something similar as job queue for a ci.
Check out dwq (disque work queue): https://github.com/kaspar030/dwq
Currently it expects to execute jobs on a git checkout, but that would be easy to hack out. And it's under heavy development...