diff --git a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/BackgroupJobs/BackgroundJobService.cs b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/BackgroupJobs/BackgroundJobService.cs index 80a5b74..0af8337 100644 --- a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/BackgroupJobs/BackgroundJobService.cs +++ b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/BackgroupJobs/BackgroundJobService.cs @@ -1,5 +1,6 @@  using Microsoft.Extensions.Logging; +using Newtonsoft.Json; using OnlineSalesAutoCrop.CoreAPI.Models; using OnlineSalesAutoCrop.CoreAPI.Models.Requests.MobileApp; using OnlineSalesAutoCrop.CoreAPI.Services.Contracts.BackgroupJobs; @@ -33,6 +34,7 @@ public class BackgroundJobService : IBackgroundJobService foreach (var item in pendingOrderIds) { var orderDetails = await _orderService.GetOrderDetailsForSapByIdAsync(item); + string jsonResult = JsonConvert.SerializeObject(orderDetails); string httpResponse = await _httpService.SendSAPOrdersAsync(orderDetails); await _orderService.UpdateSendingSapDetailsAsync(new UpdateSapDetailsRequest diff --git a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/Integrations/IntegrationHttpService.cs b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/Integrations/IntegrationHttpService.cs index 317f182..6e80a3d 100644 --- a/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/Integrations/IntegrationHttpService.cs +++ b/Api/OnlineSalesAutoCrop.CoreAPI.Services/Services/Integrations/IntegrationHttpService.cs @@ -85,7 +85,6 @@ public class IntegrationHttpService : IIntegrationHttpService { var body = await response.Content.ReadAsStringAsync(cancellationToken); _logger.LogError("Save Orders call failed: {StatusCode} — {Body}", response.StatusCode, body); - response.EnsureSuccessStatusCode(); return body; } diff --git a/Api/OnlineSalesAutoCrop.CoreAPI/Startup.cs b/Api/OnlineSalesAutoCrop.CoreAPI/Startup.cs index 92216bb..3b528b5 100644 --- a/Api/OnlineSalesAutoCrop.CoreAPI/Startup.cs +++ b/Api/OnlineSalesAutoCrop.CoreAPI/Startup.cs @@ -372,7 +372,13 @@ namespace OnlineSalesAutoCrop.CoreAPI client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); }) - .AddStandardResilienceHandler(); // retry + timeout + circuit breaker, bundled + .AddStandardResilienceHandler(options => + { + options.AttemptTimeout.Timeout = TimeSpan.FromSeconds(90); + options.CircuitBreaker.SamplingDuration = TimeSpan.FromSeconds(180); // must be >= 2x AttemptTimeout + options.TotalRequestTimeout.Timeout = TimeSpan.FromSeconds(180); + options.Retry.MaxRetryAttempts = 1; // see note below + }); #endregion }