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
|
package Net::Presque;
use Net::HTTP::API;
has worker_id => (is => 'rw', isa => 'Str', predicate => 'has_worker_id');
net_api_declare presque => (
api_format => 'json',
api_format_mode => 'content-type',
);
net_api_method fetch_job => (
method => 'GET',
path => '/q/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method fetch_jobs => (
method => 'GET',
path => '/qb/:queue_name',
params => [qw/queue_name batch_size/],
required => [qw/queue_name/],
);
net_api_method create_job => (
method => 'POST',
strict => 0,
path => '/q/:queue_name',
params_in_url => [qw/delayed uniq/],
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method create_jobs => (
method => 'POST',
strict => 0,
path => '/qb/:queue_name',
params_in_url => [qw/delayed/],
params => [qw/queue_name jobs/],
required => [qw/queue_name jobs/],
);
net_api_method reset_queue => (
method => 'DELETE',
path => '/q/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method failed_job => (
method => 'PUT',
strict => 0,
path => '/q/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method queue_info => (
method => 'GET',
path => '/j/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method queue_status => (
method => 'GET',
path => '/control/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method change_queue_status => (
method => 'POST',
path => '/control/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method queue_size => (
method => 'GET',
path => '/status/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method worker_stats => (
method => 'GET',
path => '/w/',
params => [qw/worker_id/],
required => [qw/worker_id/],
);
net_api_method workers_stats => (
method => 'GET',
path => '/w/',
);
net_api_method queue_stats => (
method => 'GET',
path => '/w/',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method register_worker => (
method => 'POST',
path => '/w/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
net_api_method unregister_worker => (
method => 'DELETE',
path => '/w/:queue_name',
params => [qw/queue_name/],
required => [qw/queue_name/],
);
sub BUILD {
my $self = shift;
if ($self->has_worker_id) {
$self->api_useragent->add_handler(
'request_prepare' => sub {
my ($request,) = @_;
$request->header('X-presque-workerid' => $self->worker_id);
}
);
}
};
1;
|