Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions Azure函数应用程序-无法从死信队列(DLQ)中检索_Azure Functions_Azureservicebus_Azure Servicebus Queues_Azure Node Sdk - Fatal编程技术网

Azure functions Azure函数应用程序-无法从死信队列(DLQ)中检索

Azure functions Azure函数应用程序-无法从死信队列(DLQ)中检索,azure-functions,azureservicebus,azure-servicebus-queues,azure-node-sdk,Azure Functions,Azureservicebus,Azure Servicebus Queues,Azure Node Sdk,下面是节点js示例,用于检索发送到死信队列的消息。我用这种方式把死信推到Q上: wait brokeredMessage.deadLetter({ 死信理由:“坏”, deadLetterErrorDescription:“太糟糕了,太悲伤了。”, }); 我确实看到Azure中的死信计数是2。无论这些邮件是由于我上面的死信代码而到达的,还是其他一些事故导致邮件被死信,我在DLQ中有2条。但是,我无法使用以下方法检索它们: const client=ns.createQueueClient(q

下面是节点js示例,用于检索发送到死信队列的消息。我用这种方式把死信推到Q上:

wait brokeredMessage.deadLetter({
死信理由:“坏”,
deadLetterErrorDescription:“太糟糕了,太悲伤了。”,
});
我确实看到Azure中的死信计数是2。无论这些邮件是由于我上面的死信代码而到达的,还是其他一些事故导致邮件被死信,我在DLQ中有2条。但是,我无法使用以下方法检索它们

const client=ns.createQueueClient(queueName);
const receiver=client.getReceiver();
const sender=client.getSender();
const messages=wait receiver.receiveBatch(100);
如果(messages.length>0){
对于(设i=0;i

我做错了什么?没有错误。为什么我不能读取DLQ并检索那里的2项?队列名称是否会像毒药消息一样更改?我在发送、写死信和尝试读取DLQ时使用了相同的队列名。

我认为您需要在队列名后附加
/$DeadLetterQueue
。所以
const deadLetterQueueName=queueName+“/$DeadLetterQueue”

请参见azure sdk中节点repo的此处。

尝试使用

const client = ns.CreateQueueClient(QueueClient.FormatDeadLetterPath(queueName));

由于您的所有邮件都在死信队列中,您可以通过为队列的死信端创建一个邮件接收器来接收死信路径中的邮件

变量ns是什么?