편집 :이 질문에 대한 답변으로 Azure 구성 관련 변경 사항을 적용합니다.WebJob ServiceBusTrigger 재시도 정책을 구성하는 방법
제 3 자 서비스를 일시적으로 사용할 수 없을 때 즉시 다시 시도하지 못하도록 재시도 정책을 설정하려고합니다.
현재 작업이 여러 번 즉시 시도되고 타사 서비스가 일시적으로 중단되어 실패합니다.
어떻게 이러한 메시지에 대한 재시도 지연을 설정합니까? 내가 제대로 오류를 기록 ErrorMonitor 설정이
class Program
{
static void Main()
{
var config = new JobHostConfiguration();
if (config.IsDevelopment)
config.UseDevelopmentSettings();
config.UseCore();
config.UseServiceBus(new ServiceBusConfiguration()
{
ConnectionString = Configuration.GetAppSetting("Microsoft.ServiceBus.ConnectionString"),
MessageOptions = new OnMessageOptions()
{
}
});
var host = new JobHost(config);
LogManager.GetCurrentClassLogger().Information("F1.Birst.Automation web job starting.");
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}
:
나는 홈페이지에 다음 코드를
public class ExceptionHandler
{
private static readonly ILogger Log = LogManager.GetCurrentClassLogger();
public void Handle([ErrorTrigger] TraceFilter message, TextWriter log)
{
foreach (var exception in message.GetEvents())
Log.Error(exception.Exception.InnerException, exception.Message);
}
}
그리고 내 메시지 핸들러는 다음과 같습니다
public class ChurchCodeChangedEventHandler : ChurchSpaceHandler
{
private static readonly ILogger Log = LogManager.GetCurrentClassLogger();
public void Handle([ServiceBusTrigger(nameof(ChurchCodeChangedEvent), "F1.Birst.Automation.ChurchCodeChangedEvent")] ChurchCodeChangedEvent message, TextWriter log)
{
Log.Information(LogTemplates.ChurchCodeChanged, message.ChurchId);
// snip
}
}
나는 전에 NServiceBus를 사용해 왔고 그것을 좋아합니다. 불행히도 현재 옵션이 아닙니다. 마이크로 소프트 연락처와 대화하면서, 문서화되지 않은 해결책이 있기를 바란다. –
문서화되지 않은 솔루션에 의존하고 싶지는 않습니다. 제품 그룹은 결코 그런 것을 제공하지 않습니다. 그리고 솔루션 아키텍트 (Solutions Architect)에서 얻은 것이라면 질문하십시오. 정확한 기능에 대한 기본 지원이 없으면 직접 구현하거나 다른 용도로 사용해야합니다. 마술이 없다. –