about summary refs log tree commit diff
path: root/README
blob: 0db227256dab53e569c12f7bd8cad8f0e13a35be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
NAME
    presque - a redis based message queue

SYNOPSIS
DESCRIPTION
    presque is a message queue system based on Tatsumaki and Redis.

    The functionalities are inspired by RestMQ
    <http://github.com/gleicon/restmq> and the name by resque
    <http://github.com/defunkt/resque>.

    The following HTTP routes are available:

    GET /q/queuename
        gets an object out of the queue

    POST /q/queuename
        insert an object in the queue

    PUT /q/queuename
        re-insert a job after a worker failed to process the job

    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 /j/queuename
        return some basic information about a queue.

    GET /control/queuename
        return the status of the queue. A queue have two statues: open or
        closed. When a queue is closed, no job can be extracted from the
        queue.

    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.

    POST /w/queue_name?worker_id
        register a worker on a queue.

    DELETE /w/queue_name?worker_id
        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
LICENSE
    Copyright 2010 by Linkfluence

    <http://linkfluence.net>

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.