【发布时间】:2021-05-22 20:46:08
【问题描述】:
我想将 int 值保存到队列消息中,然后在 Azure Function QueueTrigger 上获取它。
我通过以下方式保存:
int deviceId = -1;
await queue.AddMessageAsync(new CloudQueueMessage(deviceId.ToString()));
然后监听队列:
public async Task Run(
[QueueTrigger("verizon-suspend-device", Connection = "StorageConnectionString")] string queueMessage,
ILogger log)
{
int deviceId = int.Parse(queueMessage);
但所有消息都被移动到verizon-suspend-device-poison 队列。怎么了?
【问题讨论】:
-
很多事情都可能出错。如果 3 次重试失败,消息就会中毒(默认为 3 次)。您需要阅读/发布这 3 次执行期间发生的异常/错误消息。另外 1) 删除
int.Parse(queueMessage)并添加一个日志,看看你进入函数的内容/如果有什么。 2) 将 Function 的整个代码放入 try-catch 并打印异常。查找异常/错误(尤其是代码之外的错误)的最佳位置是 Portal->Functions->your-function->Monitor -
它根本没有记录,即使我尝试记录
queueMessage
标签: c# azure-functions message-queue azure-queues queuetrigger