disque icon indicating copy to clipboard operation
disque copied to clipboard

UNIX-ey command line interface for Disque

Open vi opened this issue 9 years ago • 2 comments

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?

vi avatar Jan 04 '16 19:01 vi

Prototype as bash scripts: https://gist.github.com/vi/72a15ad557f1ce80f7ad

vi avatar Jan 14 '16 23:01 vi

@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...

kaspar030 avatar Mar 08 '17 21:03 kaspar030