public string MyActivityOne([ActivityTrigger] IDurableActivityContext context, ILogger log) { BeginRequestData beginRequestData = context.GetInput <BeginRequestData>(); log.LogInformation($"Activity {Constants.MyActivityOne} {beginRequestData.Id} {_myConfiguration.Name} {_myConfigurationSecrets.MySecretOne} amount of retries: {_myConfiguration.AmountOfRetries}."); return($"{Constants.MyActivityOne} {beginRequestData.Id} {_myConfiguration.Name} {_myConfigurationSecrets.MySecretOne} amount of retries: {_myConfiguration.AmountOfRetries}."); }
public async Task <IActionResult> HttpStart( [HttpTrigger(AuthorizationLevel.Anonymous, "post")] HttpRequestMessage request, [DurableClient] IDurableOrchestrationClient client, ILogger log) { log.LogInformation("Started new flow"); BeginRequestData beginRequestData = await request.Content.ReadAsAsync <BeginRequestData>(); log.LogInformation($"Started new flow with ID = '{beginRequestData.Id}'."); return(await _processing.ProcessFlow(beginRequestData, request, client)); }
public async Task <IActionResult> ProcessFlow( BeginRequestData beginRequestData, HttpRequestMessage request, IDurableOrchestrationClient client) { await client.StartNewAsync(Constants.MyOrchestration, beginRequestData.Id, beginRequestData); _log.LogInformation($"Started orchestration with ID = '{beginRequestData.Id}'."); TimeSpan timeout = TimeSpan.FromSeconds(7); TimeSpan retryInterval = TimeSpan.FromSeconds(1); await client.WaitForCompletionOrCreateCheckStatusResponseAsync( request, beginRequestData.Id, timeout, retryInterval); var data = await client.GetStatusAsync(beginRequestData.Id); // timeout if (data.RuntimeStatus != OrchestrationRuntimeStatus.Completed) { await client.TerminateAsync(beginRequestData.Id, "Timeout something took too long"); return(new ContentResult() { Content = "{ error: \"Timeout something took too long\" }", ContentType = "application/json", StatusCode = (int)HttpStatusCode.InternalServerError }); } var output = data.Output.ToObject <MyOrchestrationDto>(); var completeResponseData = new CompleteResponseData { BeginRequestData = output.BeginRequest, Id2 = output.BeginRequest.Id + ".v2", MyActivityTwoResult = output.MyActivityTwoResult }; return(new OkObjectResult(completeResponseData)); }