Skip to content

Commit 52e4a01

Browse files
authored
support reserve-job command (#50)
1 parent 3bed00b commit 52e4a01

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

conn.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,15 @@ func (c *Conn) Peek(id uint64) (body []byte, err error) {
241241
return c.readResp(r, true, "FOUND %d", &id)
242242
}
243243

244+
// ReserveJob reserves the specified job by id from the server.
245+
func (c *Conn) ReserveJob(id uint64) (body []byte, err error) {
246+
r, err := c.cmd(nil, nil, nil, "reserve-job", id)
247+
if err != nil {
248+
return nil, err
249+
}
250+
return c.readResp(r, true, "RESERVED %d", &id)
251+
}
252+
244253
// Stats retrieves global statistics from the server.
245254
func (c *Conn) Stats() (map[string]string, error) {
246255
r, err := c.cmd(nil, nil, nil, "stats")

conn_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,21 @@ func TestPeekTwice(t *testing.T) {
197197
}
198198
}
199199

200+
func TestReserveJob(t *testing.T) {
201+
c := NewConn(mock("reserve-job 1\r\n", "RESERVED 1 1\r\nx\r\n"))
202+
203+
body, err := c.ReserveJob(1)
204+
if err != nil {
205+
t.Fatal(err)
206+
}
207+
if len(body) != 1 || body[0] != 'x' {
208+
t.Fatalf("bad body, expected %#v, got %#v", "x", string(body))
209+
}
210+
if err = c.Close(); err != nil {
211+
t.Fatal(err)
212+
}
213+
}
214+
200215
func TestRelease(t *testing.T) {
201216
c := NewConn(mock("release 1 3 2\r\n", "RELEASED\r\n"))
202217

0 commit comments

Comments
 (0)