내 시스템에서 LockDuration = 5 분, AutoRenewTimeout = 20 분. 일부 메시지는 5 분 이상 소요됩니다 (언젠가 5:15, 때로는 6:00). 이러한 메시지에 대한 내가 예외가 : 5 분 후, 시스템이 처리를 시작할 때 나는 우리의 로그에 읽을Azure 서비스 버스 및 긴 처리 메시지
"The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue."
, 즉 시스템 (Process_A를 호출 할 수 있습니다) 메시지를 처리하기 시작, 그것은 아직 진행했다 같은 메시지를 한 번 더 보냅니다 (Process_B). Process_A가 완료되고 Complete()가 호출되었습니다. 그런 다음 Process_B가 작업을 완료하고 Complete()를 호출했습니다. 이 메시지는 이미 작성 되었기 때문에 예외가 발생합니다.
설명서에서 LockDuration의 최대 값은 5 분입니다. 왜? 5 분 이상 지속되는 메시지는 처리 할 수 없습니까? 아니면 구성이 잘못 되었습니까?
코드로 작성해야합니까? AutoRenewTimeout이 아닌가요? – MichalO
'AutoRenewTimeout'에 대한 링크를 공유 할 수 있습니까? 나는이 재산을 찾을 수 없었다. –
[OnMessageOptions] (https://docs.microsoft.com/en-us/dotnet/api/microsoft.servicebus.messaging.onmessageoptions?view=azureservicebus-4.0.0) 클래스의 필드입니다. 다음 주제가 있습니다 : http://stackoverflow.com/questions/36561227/azure-servicebus-autorenewtimeout – MichalO