【发布时间】:2018-03-01 04:40:57
【问题描述】:
在一个以前的项目中,我设法设置了一个警报规则,该规则查看有毒队列消息计数,并在队列中有东西时使用 webhook 发出警报(每天一次)。
我试图在 Azure 中找到它存在的位置,因为它看起来好像已经发生了变化。如果这不是 azure 提供的功能,您能否就实现类似功能的最佳途径提供指导。
谢谢
【问题讨论】:
标签: azure queue azure-webjobs poison-queue
在一个以前的项目中,我设法设置了一个警报规则,该规则查看有毒队列消息计数,并在队列中有东西时使用 webhook 发出警报(每天一次)。
我试图在 Azure 中找到它存在的位置,因为它看起来好像已经发生了变化。如果这不是 azure 提供的功能,您能否就实现类似功能的最佳途径提供指导。
谢谢
【问题讨论】:
标签: azure queue azure-webjobs poison-queue
我试图在 Azure 中找到它存在的位置,因为它看起来像是在移动。如果这不是 azure 提供的功能,您能否就实现类似功能的最佳途径提供指导。
据我所知,目前 azure 没有提供发送警报规则来检查中毒队列计数的功能。
您需要编写自己的逻辑来实现此要求。
我建议你可以考虑使用 webjob/azure 函数计时器触发器或队列触发器。
如果你想每 5 分钟检查一次毒数(例如),你可以选择timer trigger。
然后在定时器触发方法中,可以使用ApproximateMessageCount方法来获取队列消息的计数。
最后,您可以使用 sendgrid 将通知邮件发送到特殊帐户。
代码:
//get the storage account from the connection string
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
//instantiate the client
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue q = queueClient.GetQueueReference("queue-poison");
q.FetchAttributes();
var qCnt = q.ApproximateMessageCount;
如果您想在新队列消息添加到毒队列时获取计数。您可以选择queue trigger。代码与定时器触发器相同,只需更改参数即可。
【讨论】: