2012-06-21 34 views
5

Có thể tắt tính năng thử lại trong NServiceBus, phiên bản 3.2.2 không?Cách tắt NServiceBus thử lại hoàn toàn

Sử dụng cấu hình sau đây, lần thử lại có thể bị vô hiệu hóa:

<MsmqTransportConfig NumberOfWorkerThreads="1" 
         MaxRetries="0" /> 

    <SecondLevelRetriesConfig Enabled="false" 
          TimeIncrease="00:00:10" 
          NumberOfRetries="0" /> 

Nhưng không phải khi đếm chủ đề được thiết lập để 20. Trong trường hợp này, thông điệp được xem xét lại hai lần:

<MsmqTransportConfig NumberOfWorkerThreads="20" 
         MaxRetries="0" /> 

    <SecondLevelRetriesConfig Enabled="false" 
          TimeIncrease="00:00:10" 
          NumberOfRetries="0" /> 

này trông rất giống một con bọ. Hành vi thử lại không nên phụ thuộc vào số lượng chủ đề.

Trả lời

1

Ngữ nghĩa của MaxRetries là "Ít nhất X lần". Lý do cho điều này là hiệu suất vì chúng tôi không thể thoải mái hơn một chút khi nói đến việc đồng bộ hóa chủ đề của chúng tôi. Bạn cũng có thể làm cho giao dịch của bạn không giao dịch này sẽ có hiệu quả cung cấp cho bạn một thử cho mỗi tin nhắn nhưng bạn sẽ mất hàng đợi lỗi cũng như vậy tin nhắn không thành công sẽ biến mất mãi mãi.

+0

Tất cả điều này đều nói rằng tôi nghĩ rằng giải pháp dài hạn sẽ có một câu chuyện về điều này nhưng tôi cần thêm bối cảnh liên quan đến vấn đề kinh doanh thực tế để giúp bạn tiếp tục? –

+0

Cảm ơn câu trả lời. Chúng tôi có mức giao dịch cao trên mỗi giây. Mỗi lần thử lại thất bại vì dữ liệu không có sẵn trong cơ sở dữ liệu là một chuyến đi cơ sở dữ liệu khác bị lãng phí. Chúng tôi hy vọng sẽ tắt hành vi này và hoàn toàn dựa vào việc thử lại cấp độ thứ hai. –

Các vấn đề liên quan