summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README114
1 files changed, 25 insertions, 89 deletions
diff --git a/README b/README
index 0db2272..0c29bb0 100644
--- a/README
+++ b/README
@@ -1,14 +1,23 @@
NAME
- presque - a redis based message queue
+ presque - a redis/tatsumaki based message queue
SYNOPSIS
DESCRIPTION
- presque is a message queue system based on Tatsumaki and Redis.
+ presque is a persistent job queue that uses Redis for storage and
+ Tatsumaki for the interface between workers and Redis.
+
+ presque implement a REST interface for communications, and jobs are JSON
+ data structure.
+
+ Workers can be written in any language as long as they implement the
+ REST interface. A complete worker exists for Perl presque::worker. Some
+ examples in other languages can be found in the eg directory.
The functionalities are inspired by RestMQ
- <http://github.com/gleicon/restmq> and the name by resque
+ <http://github.com/gleicon/restmq> and resque
<http://github.com/defunkt/resque>.
+ HTTP ROUTES
The following HTTP routes are available:
GET /q/queuename
@@ -23,9 +32,8 @@ DESCRIPTION
DELETE /q/queuename
purge and delete the queue
- GET /status/(queuename)
- If no queuename is given, return a list of queues. If queuename is
- given, return the size of the queue and the current policy.
+ GET /status/
+ informations about a queue.
GET /j/queuename
return some basic information about a queue.
@@ -38,98 +46,26 @@ DESCRIPTION
POST /control/queuename
change the status of the queue.
- GET /w/(?[worker_id|queue_name])
- If no argument is given, return some stats about workers. If a
- worker_id is given, return stats about the specific worker. If a
- queue name is given return stats about the workers on this queue.
+ GET /w/
+ some statisctics about a worker
- POST /w/queue_name?worker_id
+ POST /w/queuename
register a worker on a queue.
- DELETE /w/queue_name?worker_id
+ DELETE /w/queue_name
unregister a worker on a queue.
-USAGE
- WORKERS INTERFACE
- It's possible for a worker to register itself against presque. This is
- not required. The main purpose of registering workers is to collect
- informations about your workers : what are they doing right now, how
- many jobs have they failed, how many jobs have they processed, ...
-
- REGISTER A WORKER
- To register a worker, a POST request must be made. The content of the
- POST must be a JSON structure that contains the key worker_id.
-
- curl -H 'Content-Type: appplication/json' http://localhost:5000/w/foo -d '{"worker_id":"myworker_1"}
-
- The HTTP response is 201, and no content is returned.
-
- STATISTICS
- When a worker is registered, statistics about this worker are collected.
-
- curl "http://localhost:5000/w/?worker_id=myworker_1" | json_xs -f json -t json-pretty
-
- {
- "worker_id" : "myworker_1",
- "started_at" : 1273923534,
- "processed" : "0",
- "failed" : "0"
- }
-
- UNREGISTER A WORKER
- When a worker has finished to work, it should unregister itself:
-
- curl -X DELETE "http://localhost:5000/w/foo?worker_id=myworker_1"
-
- The response HTTP code is 204, and no content is returned.
-
- JOB INTERFACE
- INSERT A JOB
- The Content-Type of the request must be set to application/json. The
- body of the request must be a valid JSON object.
-
- curl -H 'Content-Type: application/json' -X POST "http://localhost:5002/q/foo" -d '{"key":"value"}'
-
- It's possible to create delayed jobs (eg: job that will not be run
- before a defined time in the futur).
-
- curl -H 'Content-Type: application/json' -X POST "http://localhost:5002/q/foo?delayed="$(expr `date +%s` + 500) -d '{"key":"value"}'
-
- the delayed value should be a date in epoch
-
- FETCH A JOB
- Return a JSON object
-
- curl http://localhost:5002/q/foo
-
- PURGE AND DELETE A QUEUE
- curl -X DELETE http://localhost:5002/q/foo
-
- CHANGE THE POLICY OF A QUEUE
- By default, when a queue is created, the status is set to 'open'. When a
- queue is set to 'stop', no job will be fetched from the queue.
-
- To stop a queue:
-
- curl -X POST -H 'Content-Type: application/json' -d '{"status":"stop"}' http://localhost:5000/control/foo
-
- {"response":"updated","queue":"foo"}
-
- To re-open a queue:
-
- curl -X POST -H 'Content-Type: application/json' -d '{"status":"start"}' http://localhost:5000/control/foo
-
- To fetch the status of a queue:
-
- curl http://localhost:5000/control/foo
-
- {"status":"0","queue":"foo"}
-
- GET SOME STATUS ABOUT A QUEUE
AUTHOR
franck cuny <franck@lumberjaph.net>
SEE ALSO
+ For a complete description of each routes, refer to
+ presque::WorkerHandler, presque::RestQueueHandler,
+ presque::ControlHandler, presque::JobQueueHandler,
+ presque::StatusHandler.
+
+ For a complete worker see presque::worker.
+
LICENSE
Copyright 2010 by Linkfluence