我正在尝试将有害消息移入主队列。我在移动邮件时没有遇到任何问题,但看起来邮件已转换为其他加密级别。
<bound method DictMixin.values of {'id': '389a834e-48af-41b5-be36-5f61ad7c2232', 'inserted_on':
datetime.datetime(2020, 6, 30, 3, 13, tzinfo=datetime.timezone.utc),
'expires_on': datetime.datetime(2020, 7, 7, 3, 13, tzinfo=datetime.timezone.utc),
'dequeue_count': 0, 'content':
'eyJjYWxsX2JhY2tfdXJpIjogImh0dHBzOi8vcG9zdG1hbi1lY2hvLmNvbS9wb3N0IiwgInBpcGVsaW5lX3J1bl
9pZCI6ICI3OTY1MGU3Zi01NmFmLTRiYzgtOWE3NC0yYTk3YWRhOWRhNWUiLCAiZXhlY
3V0aW9uX2lkIjogImRmYzcwMjAwLTY3MzgtNDNkMy1',
'pop_receipt': None, 'next_visible_on': None}>
如何将内容转换为消息队列?
答案 0 :(得分:0)
Microsoft Azure Storage Explorer的1.4.1版本无法将邮件从一个Azure队列移至另一个。
这是一个简单的solution,用于将有毒消息传送回始发队列。显然,您需要修复导致消息最终出现在有毒消息队列中的错误!
您需要将NuGet软件包引用添加到Microsoft.NET.Sdk.Functions:
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
void Main()
{
const string queuename = "MyQueueName";
string storageAccountString = "xxxxxx";
RetryPoisonMesssages(storageAccountString, queuename);
}
private static int RetryPoisonMesssages(string storageAccountString, string queuename)
{
CloudQueue targetqueue = GetCloudQueueRef(storageAccountString, queuename);
CloudQueue poisonqueue = GetCloudQueueRef(storageAccountString, queuename + "-poison");
int count = 0;
while (true)
{
var msg = poisonqueue.GetMessage();
if (msg == null)
break;
poisonqueue.DeleteMessage(msg);
targetqueue.AddMessage(msg);
count++;
}
return count;
}
private static CloudQueue GetCloudQueueRef(string storageAccountString, string queuename)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageAccountString);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(queuename);
return queue;
}