我创建了一个用节点编写的webjob。我想知道是否有办法在有消息进入队列时触发此webjob运行?
由于
答案 0 :(得分:4)
请查看我们正在为这个问题制定解决方案的azure-webjobs-sdk-script回购。
repo是新的,因此doc和help仍然在线,但您可以克隆它并运行 Host.Node 示例项目,该项目演示了各种Node.js触发的函数,包括{{3这个库已经过测试,已部署到Azure并可以运行。
请在回购的问题列表中记录任何问题/反馈,我们将解决这些问题:)
答案 1 :(得分:3)
请看Mathew的帖子,了解我们正在使用SDK的新功能。 https://github.com/Azure/azure-webjobs-sdk-script
尚未使用WebJobs SDK。 您可以构建一个连续的作业并保留fetching。如果你想建立一些理智的东西,你可能会做类似的事情:
var azure = require('azure-storage');
var queueService = azure.createQueueService(),
queueName = 'taskqueue';
// Poll every 5 seconds to avoid consuming too many resources
setInterval(function() {
queueService.getMessages(queueName, {}, function(error, serverMessages) {
if (!error) {
// For each message
serverMessages.foreach(function(i) {
// Do something
console.log(i.messagetext);
// Delete Message
queueService.deleteMessage(queueName, i.messageid, i.popreceipt,
function(error) {
if (error) {
console.log(error);
}
}); //end deleteMessage
}); // end foreach
} else {
console.log(error);
}
});
}, 5000);
您希望查看他们在azure.github.io上的JSDoc,以了解如何执行抓取多条消息并增加"阻止"时间默认为30秒。
如果您有任何其他问题,请与我们联系。