でスケジュールされた時間まで処理されないようにするまでこれまで多くのチュートリアルを試してみましたが、これまでこれを達成できませんでした。Service Bus QueueのメッセージがNodeJS
現在、私はサービスバスキューにメッセージを送信するnodejsアプリケーションと、引き続きポーリングする別のnodejを持っています。私の目標は、ポーリングシステムがメッセージを処理できる特定の日時を持つキューにメッセージを送信することです。
マイ結果、これまで私がメッセージを送信するとすぐに、それは目に見えるようになると、それはすぐに処理され、ここで私は私の受信機は非常に簡単です
//made some changes after the first suggestion, but still does not work
//what I'm doing here is offsetting the time difference with UTC(im in GMT-7 tz) by adding it manually
//(this is just a test so if this would have worked I would have made it more elegant)
var scheduled_time = new Date().valueOf() + ((60000*60)*7.5);
var current_time = Date.now();
console.log(scheduled_time, current_time);
var message = {
body: 'Time ' + current_time.toString(),
brokerProperties:{
ScheduledEnqueueTimeUtc: scheduled_time,
TimeToLive: 8
},
customProperties: {
testproperty: 'TestValue'
}};
serviceBus.sendQueueMessage('myqueue', message, function(error){
if(!error){
// message sent
console.log('message sent');
}
});
を持っているものであるということである
function receiveMessages() {
serviceBus.receiveQueueMessage(queue,
function (error, message) {
if (error) {
console.log(error);
} else {
console.log('Process after ' + message.brokerProperties.ScheduledEnqueueTimeUtc);
}
});
};
これまでのところ、GitHubページにはメッセージのプロパティの説明がありますが、それは正しいと思われますが、それでも動作しません。
は
hmmmm Mozillaのこの規約[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/now]に従っています。しかし、私はあなたのコメントリンクに提示されたソリューションに試してみることをお勧めします。うまくいけば – Marcianin
あなたが提供したリンクで解決策を試しましたが、どちらもうまくいきません。私は時間差を手動で相殺することによってそれがうまくいくと思ったが、どちらもしなかった。私は手動でこれまでのところ、将来的にはUTCになると思っていましたが、メッセージは送信されるとすぐに処理されます。 – Marcianin