Skip to content

Commit ad122ab

Browse files
committed
Use reject instead of nack, add tests
Pretty basic tests if I'm honest. (`reject` is more backwards compatible than `nack`, and for single messages, otherwise equivalent)
1 parent bbae37a commit ad122ab

2 files changed

Lines changed: 44 additions & 2 deletions

File tree

lib/sockets.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ WorkerSocket.prototype.requeue = function() {
353353
if (!msg) {
354354
throw new Error("requeue called with no unacknowledged messages");
355355
}
356-
this.ch.nack(msg);
356+
this.ch.reject(msg);
357357
};
358358

359359

@@ -500,7 +500,7 @@ RepSocket.prototype.requeue = function() {
500500
if (!current)
501501
throw new Error('Requeue with no pending request');
502502

503-
ch.nack(current);
503+
ch.reject(current);
504504
};
505505

506506

test/tests.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,3 +408,45 @@ suite.queueError = testWithContext(function(done, CTX) {
408408
});
409409
sock.connect('amq.reserved-namespace');
410410
});
411+
412+
suite.discardMessage = testWithContext(function(done, CTX) {
413+
var worker = CTX.socket('WORKER');
414+
var push = CTX.socket('PUSH');
415+
worker.connect('test.worker-reject');
416+
worker.on('data', function(m) {
417+
worker.discard();
418+
done();
419+
});
420+
push.connect('test.worker-reject', function(_ok) {
421+
push.write('foobar');
422+
});
423+
});
424+
425+
suite.requeueMessage = testWithContext(function(done, CTX) {
426+
var worker1 = CTX.socket('WORKER');
427+
var worker2 = CTX.socket('WORKER');
428+
var recvd = false;
429+
var q = 'test.worker-requeue';
430+
431+
var push = CTX.socket('PUSH');
432+
worker1.connect(q);
433+
worker2.connect(q);
434+
435+
function recv(msg) {
436+
if (recvd) {
437+
this.ack();
438+
done();
439+
}
440+
else {
441+
this.requeue();
442+
recvd = true;
443+
}
444+
}
445+
446+
worker1.on('data', recv.bind(worker1));
447+
worker2.on('data', recv.bind(worker2));
448+
449+
push.connect(q, function(_ok) {
450+
push.write('foobar');
451+
});
452+
});

0 commit comments

Comments
 (0)