servicebuss 的 webjob 消息中毒(类型队列)
webjob message poisoning for servicebuss (type queue)
我正在尝试处理我的消息中毒,因为它没有命中我的毒方法。我正在关注 this article from Microsoft,这是我的代码:
public static void ProcessQueueMessage([ServiceBusTrigger("emailqueue")] EmailModels.EmailSendModel message, TextWriter log,[SendGrid()] out Mail mail)
{
log.WriteLine(message);
mail = new Mail(){Subject = message.Title};
mail.From = new Email("me@gmail.com");
mail.AddPersonalization(new Personalization()
{Tos= message.To.Select(t=>new Email (t.Email)).ToList()});
mail.AddContent(new Content("text/plain", $"The message {message.Body}' was successfully processed."));
}
public static void ProcessPoisonMessage([ServiceBusTrigger("emailqueue-poison")] EmailModels.EmailSendModel message, TextWriter logger)
{
logger.WriteLine($"start poisoning");
logger.WriteLine($"Poisoning message for proposal id {message.ProposalId} for list {JsonConvert.SerializeObject(message.To)}");
}
发送方法被命中 5 次并失败 (故意) 但随后中毒没有被命中,我的消息最终在死信消息中没有任何操作:|
我做错了什么?
您引用的文章描述的是 Azure 存储队列,而不是服务总线。它们是不同的服务,毒消息处理也大不相同。
尝试用
标记你的触发器
[ServiceBusTrigger("emailqueue/$DeadLetterQueue")]
我正在尝试处理我的消息中毒,因为它没有命中我的毒方法。我正在关注 this article from Microsoft,这是我的代码:
public static void ProcessQueueMessage([ServiceBusTrigger("emailqueue")] EmailModels.EmailSendModel message, TextWriter log,[SendGrid()] out Mail mail)
{
log.WriteLine(message);
mail = new Mail(){Subject = message.Title};
mail.From = new Email("me@gmail.com");
mail.AddPersonalization(new Personalization()
{Tos= message.To.Select(t=>new Email (t.Email)).ToList()});
mail.AddContent(new Content("text/plain", $"The message {message.Body}' was successfully processed."));
}
public static void ProcessPoisonMessage([ServiceBusTrigger("emailqueue-poison")] EmailModels.EmailSendModel message, TextWriter logger)
{
logger.WriteLine($"start poisoning");
logger.WriteLine($"Poisoning message for proposal id {message.ProposalId} for list {JsonConvert.SerializeObject(message.To)}");
}
发送方法被命中 5 次并失败 (故意) 但随后中毒没有被命中,我的消息最终在死信消息中没有任何操作:|
我做错了什么?
您引用的文章描述的是 Azure 存储队列,而不是服务总线。它们是不同的服务,毒消息处理也大不相同。
尝试用
标记你的触发器[ServiceBusTrigger("emailqueue/$DeadLetterQueue")]