You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+77Lines changed: 77 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -266,3 +266,80 @@ sleep( 1000 );
266
266
processor.stop();
267
267
```
268
268
269
+
## Dead Letter
270
+
271
+
When dead lettering a message, you can provide a description and reason, as well as a struct of properties to modify.
272
+
273
+
```js
274
+
275
+
var message =receiver.receiveMessage( 2 );
276
+
message.deadLetter( deadLetterErrorDescription="dead letter desc", deadLetterReason="dead letter reason" );
277
+
```
278
+
279
+
To read from the dead letter sub queue, build a receiver like so:
280
+
```js
281
+
var dlReceiver =sbClient.buildReceiver(
282
+
queueName='new-orders',
283
+
deadLetter=true,
284
+
receiveMode='PEEK_LOCK'
285
+
);
286
+
```
287
+
288
+
To process multiple messages the dead letter sub queue, build a Processor like so:
289
+
```js
290
+
var processor =sbClient.buildProcessor(
291
+
queueName='new-orders',
292
+
onMessage=function( message ){
293
+
// process the message
294
+
}
295
+
deadLetter=true
296
+
);
297
+
```
298
+
299
+
To read from the transfer dead letter sub queue, use this flag:
300
+
```js
301
+
var dlReceiver =sbClient.buildReceiver(
302
+
queueName='new-orders',
303
+
transferDeadLetter=true,
304
+
receiveMode='PEEK_LOCK'
305
+
);
306
+
```
307
+
308
+
To process multiple messages the transfer dead letter sub queue, build a Processor like so:
309
+
```js
310
+
var processor =sbClient.buildProcessor(
311
+
queueName='new-orders',
312
+
onMessage=function( message ){
313
+
// process the message
314
+
}
315
+
transferDeadLetter=true
316
+
);
317
+
```
318
+
319
+
320
+
## Scheduled Messages
321
+
322
+
To have a message obey a delay before being enqueued, you can use the `scheduledEnqueueTime` or the `scheduledDelaySeconds` argument. You can also set the `scheduledEnqueueTime` property on the message, but these arguments to the `sendMessage()` method are more convenient and just set the property for you.
323
+
324
+
*`scheduledEnqueueTime()` - This accepts a specific UTC time. Pass in a `java.time.OffsetDateTime` instance, a CFML date object, or a string parseable by `OffsetDateTime.parse()`.
325
+
*`scheduledDelaySeconds()` - Pass in a single integer which represent a number of seconds from right now. We will calculate the UTC timestamp for you.
326
+
327
+
This code sends a message in 15 seconds. This call completes right away, and the delay is handled inside of Azure.
328
+
```js
329
+
sender.sendMessage(
330
+
message=messageBody,
331
+
scheduledDelaySeconds=15
332
+
);
333
+
```
334
+
335
+
This code sends a message in 15 seconds, but by creating a UTC timestamp 15 seconds from now.
336
+
```js
337
+
var fifteenSecondsFromNowUTC =createObject("java", "java.time.OffsetDateTime")
0 commit comments