听起来像你想推迟一条消息?
不知道太多关于Azure SDK for Node.js但是从MSDN Documentation您可以在消息中设置一个ScheduledEnqueueTimeUtc
:
在UTC的预定排队时间。此值用于延迟邮件发送。它被用来将消息发送延迟到特定的时间。
只有样品send a message to a Queue是:
var message = {
body: 'Test message',
customProperties: {
testproperty: 'TestValue'
}};
serviceBusService.sendQueueMessage('myqueue', message, function(error){
if(!error){
// message sent
}
});
从的NodeJS SDK中,我发现了一个constants.js文件,定义这些属性:
/**
* The broker properties for service bus queue messages.
*
* @const
* @type {string}
*/
BROKER_PROPERTIES_HEADER: 'brokerproperties',
...
/**
* The scheduled enqueue time header.
*
* @const
* @type {string}
*/
SCHEDULED_ENQUEUE_TIME_HEADER: 'x-ms-scheduled-enqueue-time',
如果你看看servicebusservice.js,有一个setRequestHeaders
函数可以获取消息的某些属性并将其设置为标题。
所以我想你可以像该消息设置该属性:
// Set your scheduled date
var scheduledDate = Date.now();
scheduledDate.setHours(scheduledDate.getHours()+3);
var message = {
body: 'Test message',
brokerproperties: {
'x-ms-scheduled-enqueue-time': scheduledDate.toUTCString()
}};
让我知道,如果它:-)
我会在本周测试它,我会让你知道那里:)谢谢。 – Mik378
@ Mik378,你是否设法让它工作? :-) – Thomas
它似乎工作,我的团队将做一些其他测试来验证这一点;) – Mik378