Send message from an Azure ServiceBus Topic after a specific delay with node.js -
basically, within azure service bus, have topic , subscription.
if message arrives in topic between 11:00am, subscriber should not handle yet. however, @ 14:00pm, expect subscriber treat it.
is there way achieve natively topic filters?
i don't find mention of kind of use case in official documentation regarding filters.
indeed, presented samples about:
"subscriber handling kind of message, or never".
i'm looking for:
"subscriber expecting handling kind of message but, later @ specific time".
sounds want defer message ?
don't know azure sdk node.js msdn documentation can set scheduledenqueuetimeutc
on message :
the scheduled enqueue time in utc. value delayed message sending. utilized delay messages sending specific time in future.
only sample send message queue :
var message = { body: 'test message', customproperties: { testproperty: 'testvalue' }}; servicebusservice.sendqueuemessage('myqueue', message, function(error){ if(!error){ // message sent } });
from nodejs sdk, found constants.js file defines these properties :
/** * broker properties service bus queue messages. * * @const * @type {string} */ broker_properties_header: 'brokerproperties', ... /** * scheduled enqueue time header. * * @const * @type {string} */ scheduled_enqueue_time_header: 'x-ms-scheduled-enqueue-time',
if have @ servicebusservice.js, there setrequestheaders
function takes properties of message , set header.
so guess can set property on message :
// set scheduled date var scheduleddate = date.now(); scheduleddate.sethours(scheduleddate.gethours()+3); var message = { body: 'test message', brokerproperties: { 'x-ms-scheduled-enqueue-time': scheduleddate.toutcstring() }};
let me know if works :-)
Comments
Post a Comment