聽起來像你想推遲一條消息?
不知道太多關於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