毒药队列的截止日期

时间:2018-05-12 05:55:33

标签: c# azure-storage-queues

如何在azure存储队列中将毒药队列消息到期日期更改为最大值 目前默认的到期时间是7天。

1 个答案:

答案 0 :(得分:1)

AFAIK,Azure队列消息允许的最长到期时间为7天,这也是默认值。

毒性队列也是名为<Report xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns='Report' xsi:schemaLocation='Report http://127.0.01/' Name='Report' Customer='Data'><Tablix1><Textbox1/><DialedNumber_Collection><DialedNumber DialedNumber1='3468452864'><Details_Collection><Details DialingNumber='34647991111' StartTime='2018-05-02T08:09:28' HangupTime='2018-05-02T08:09:39.957' WaitDuration='11' isUserInformed='True'/><Details DialingNumber='34647991111' StartTime='2018-05-02T08:18:13' AnswerTime='2018-05-02T08:18:40.547' DialedNumbers='123' AnswerNumber='123' HangupTime='2018-05-02T08:20:07.417' ConversationDuration='87' WaitDuration='27'/><Details DialingNumber='3453455626' StartTime='2018-05-02T08:22:17' AnswerTime='2018-05-02T08:22:53.56' DialedNumbers='104' AnswerNumber='104' HangupTime='2018-05-02T08:24:03.067' ConversationDuration='70' WaitDuration='36'/><Details DialingNumber='345394356' StartTime='2018-05-02T08:29:50' AnswerTime='2018-05-02T08:30:23.17' DialedNumbers='106;159' AnswerNumber='159' HangupTime='2018-05-02T08:31:32.563' ConversationDuration='69' WaitDuration='33'/><Details DialingNumber='34534881231' StartTime='2018-05-02T09:16:57' AnswerTime='2018-05-02T09:17:32.17' DialedNumbers='106;159' AnswerNumber='159' HangupTime='2018-05-02T09:18:55.41' ConversationDuration='83' WaitDuration='35'/><Details DialingNumber='234343245435' StartTime='2018-05-02T10:01:25' DialedNumbers='104' HangupTime='2018-05-02T10:01:55.73' WaitDuration='30' isUserInformed='True'/><Details DialingNumber='3453453456' StartTime='2018-05-02T10:25:48' AnswerTime='2018-05-02T10:26:18.24' DialedNumbers='104' AnswerNumber='104' HangupTime='2018-05-02T10:26:58.307' ConversationDuration='40' WaitDuration='30'/><Details DialingNumber='435345343245' StartTime='2018-05-02T10:41:58' AnswerTime='2018-05-02T10:42:28.933' DialedNumbers='104' AnswerNumber='104' HangupTime='2018-05-02T10:43:21.657' ConversationDuration='53' WaitDuration='30'/><Details DialingNumber='23423465676' StartTime='2018-05-02T10:46:22' AnswerTime='2018-05-02T10:46:54.163' DialedNumbers='104' AnswerNumber='104' HangupTime='2018-05-02T10:47:19.257' ConversationDuration='25' WaitDuration='32'/><Details DialingNumber='45342625634' StartTime='2018-05-02T11:16:24' HangupTime='2018-05-02T11:16:39.2' WaitDuration='15'/><Details DialingNumber='2342343456' StartTime='2018-05-02T11:32:33' DialedNumbers='104' HangupTime='2018-05-02T11:33:24.123' WaitDuration='51' CallBackTime='2018-05-02T11:34:19' CallBackNumber='23423452344' CallBackShortNumber='104' isUserInformed='True'/><Details DialingNumber='24255550' StartTime='2018-05-02T12:22:08' DialedNumbers='104' HangupTime='2018-05-02T12:22:56.8' WaitDuration='48' CallBackTime='2018-05-02T13:22:10' CallBackNumber='2342353404' CallBackShortNumber='104' isUserInformed='True'/><Details DialingNumber='23423459806' StartTime='2018-05-02T12:39:53' DialedNumbers='110' HangupTime='2018-05-02T12:40:25.373' WaitDuration='32' isUserInformed='True'/><Details DialingNumber='234234541' StartTime='2018-05-02T13:01:20' AnswerTime='2018-05-02T13:01:58.763' DialedNumbers='104' AnswerNumber='104' HangupTime='2018-05-02T13:04:35.463' ConversationDuration='157' WaitDuration='38'/><Details DialingNumber='345654772' StartTime='2018-05-02T13:30:50' AnswerTime='2018-05-02T13:31:01.457' DialedNumbers='128;116' AnswerNumber='128' HangupTime='2018-05-02T13:31:29.483' ConversationDuration='28' WaitDuration='11'/><Details DialingNumber='234234238' StartTime='2018-05-02T13:52:08' AnswerTime='2018-05-02T13:53:25.017' DialedNumbers='110' AnswerNumber='110' HangupTime='2018-05-02T14:01:26.58' ConversationDuration='481' WaitDuration='77'/><Details DialingNumber='37061449825' StartTime='2018-05-02T16:15:54' AnswerTime='2018-05-02T16:16:25.45' DialedNumbers='128;116' AnswerNumber='128' HangupTime='2018-05-02T16:18:12.617' ConversationDuration='107' WaitDuration='31'/><Details DialingNumber='234234234' StartTime='2018-05-02T16:31:57' AnswerTime='2018-05-02T16:32:19.097' DialedNumbers='106;159' AnswerNumber='159' HangupTime='2018-05-02T16:32:55.83' ConversationDuration='36' WaitDuration='22'/></Details_Collection></DialedNumber></DialedNumber_Collection></Tablix1></Report> DATA; $elements = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOWARNING); foreach ($elements->Tablix1->DialedNumber_Collection->DialedNumber->Details_Collection->Details as $detail) { echo sprintf("ConversationDuration: %s<br>DialingNumber: %s<br>StartTime: %s<br><br>", $detail->attributes()->ConversationDuration, $detail->attributes()->DialingNumber, $detail->attributes()->StartTime ); } 的普通队列。例如,如果Azure Webjobs SDK处理超过最大尝试次数的队列消息,则相关消息将被移动到毒性队列,此过程由SDK处理。

根据我的理解,您需要显式处理有害消息,而不是永久地将消息存储到毒性队列中。您可以关注的详细信息How to handle poison messages。此外,您可以选择其他消息队列服务以满足您的要求。

<小时/> 的更新:

关于9.0.0中的更改changelog.txt

  

队列:在队列消息上添加了对无限TTL的支持。

您可以在添加队列消息时指定{original-queue-name}-poison参数,如下所示:

timeToLive

根据您的要求,您可以使用手动中毒消息处理方法来检查queue.AddMessage(new CloudQueueMessage($"hello world-{DateTime.UtcNow}"),timeToLive:TimeSpan.MaxValue); 并以编程方式将当前队列消息显式添加到中毒队列中。

注意:默认情况下,队列消息发送到中毒队列之前的最大重试次数为5次,您可以通过dequeueCount进行更改。

或者您只是利用自动毒药消息处理,然后您可以触发相关的毒物队列并使用无限TTL将队列消息添加到您的自定义毒药队列中。