public void RegisterActivity(string name, string taskListName) { var listActivityRequest = new ListActivityTypesRequest() { Domain = domainName, Name = name, RegistrationStatus = RegistrationStatus.REGISTERED }; var results = swfClient.ListActivityTypesAsync(listActivityRequest).Result; if (results.ActivityTypeInfos.TypeInfos.FirstOrDefault(x => x.ActivityType.Name == name) == null) { RegisterActivityTypeRequest request = new RegisterActivityTypeRequest() { Name = name, Domain = domainName, Description = "Custom Description Here", Version = "1.0", DefaultTaskList = new TaskList() { Name = taskListName }, //Worker poll based on this DefaultTaskScheduleToStartTimeout = "150", DefaultTaskStartToCloseTimeout = "450", DefaultTaskHeartbeatTimeout = "NONE", DefaultTaskScheduleToCloseTimeout = "350" }; swfClient.RegisterActivityTypeAsync(request); Console.WriteLine("Created Activity: " + request.Name); } }
/// <summary> /// Create orchestartion /// </summary> /// <param name="orchestrationId">Unique id to identify the orchestration</param> /// <returns></returns> public async Task <IOrchestration> CreateOrchestrationAsync(string orchestrationId) { try { await _amazonSimpleWorkflowClient.RegisterDomainAsync(new RegisterDomainRequest { Name = Constants.LAMBDA_BIZ_DOMAIN, WorkflowExecutionRetentionPeriodInDays = "90" }); } catch (DomainAlreadyExistsException) { } try { await _amazonSimpleWorkflowClient.RegisterWorkflowTypeAsync(new RegisterWorkflowTypeRequest { Domain = Constants.LAMBDA_BIZ_DOMAIN, Name = Constants.LAMBDA_BIZ_WORKFLOW_TYPE, Version = Constants.LAMBDA_BIZ_TYPE_VERSION }); } catch (TypeAlreadyExistsException) { } try { await _amazonSimpleWorkflowClient.RegisterActivityTypeAsync(new RegisterActivityTypeRequest { Domain = Constants.LAMBDA_BIZ_DOMAIN, Name = Constants.LAMBDA_BIZ_ACTIVITY_TYPE, Version = Constants.LAMBDA_BIZ_TYPE_VERSION }); } catch (TypeAlreadyExistsException) { } return(new AWSOrchestration(_amazonSimpleWorkflowClient, orchestrationId, _store, _lambdaRole)); }