Super easy way to queue up processes needing locks on resources, or balls in this metaphore
You hold a ball and put it back when you're done. If you're waiting for a ball, no one else can take it.
# Set up repo, bower install, npm install, linking ./init.sh # Run on port 8080 coffee server.coffee # Run on port 9090 HTTP_PORT=9090 coffee server.coffee # Or run with docker docker run -p 8080:8080 ferrants/qball
Visit the base url, you will see an admin panel. You can enable auto-admin so you don't have to worry about it.
# How to use GET /[user]/hold/[ball] # take the ball GET /[user]/put/[ball] # return the ball GET /[user]/wait_for/[ball] # wait in line for ball GET /[user]/stop_wait_for/[ball] # stop waiting in line for ball # Admin GET / # admin UI screen GET /balls # show all balls GET /balls/[ball] # show ball info GET /balls/[ball]/kick # kick holder of ball GET /balls/[ball]/rotate # move person first in ball's queue to the end GET /balls/[ball]/clear # clear ball's queue and holder GET /balls/[ball]/drop # destroy the ball GET /balls/[ball]/auto_admin # toggle automatic administration # Sample Flow GET /dude/hold/ball GET /bro/hold/ball # 405 Status Code GET /bro/wait_for/ball GET /dude/put/ball GET /bro/hold/ball
See test/test.coffee for examples
- Python: qball-python (https://github.com/ferrants/qball-python)
Docker is now supported, see (https://registry.hub.docker.com/u/dataxu/qball/)