public static async Task <ResponseModel> RunDurableJobSet( [OrchestrationTrigger] DurableOrchestrationContext context, ILogger log, ExecutionContext execContext) { var config = JobFunction.GetConfiguration(execContext); JobSetModel model = JsonConvert.DeserializeObject <JobSetModel>(context.GetInput <string>()); ResponseModel response = new ResponseModel() { Id = model.Id }; foreach (JobModel job in model.Jobs) { job.Id = model.Id; response = await context.CallActivityAsync <ResponseModel>("RunJob", job); } return(response); }
public async Task <IActionResult> Index(DemoModel model, string submit) { string queue = "durablejobs"; JobModel job = new JobModel(); job.Id = model.Id; switch (submit) { case "interactive": { job.Job = "Sleep"; job.Details = "Fast sleeping"; job.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job.Parameters.Add("Iterations", "10"); job.Parameters.Add("Delay", "1000"); queue = "interactivejobs"; await QueueJob(job, queue); } break; case "jobset": { JobSetModel set = new JobSetModel(); set.Id = model.Id; JobModel job1 = new JobModel(); job1.Job = "Sleep"; job1.Details = "Phase 1"; job1.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job1.Parameters.Add("Iterations", "5"); job1.Parameters.Add("Delay", "1000"); JobModel job2 = new JobModel(); job2.Job = "Sleep"; job2.Details = "Phase 2"; job2.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job2.Parameters.Add("Iterations", "10"); job2.Parameters.Add("Delay", "1000"); JobModel job3 = new JobModel(); job3.Job = "Sleep"; job3.Details = "Phase 3"; job3.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job3.Parameters.Add("Iterations", "3"); job3.Parameters.Add("Delay", "5000"); set.Jobs = new List <JobModel>(); set.Jobs.Add(job1); set.Jobs.Add(job2); set.Jobs.Add(job3); await QueueJobSet(set, "durablejobsets"); } break; case "import": { job.Job = "Import"; job.Path = "Attendees.csv"; await QueueJob(job, queue); } break; case "images": { job.Job = "Images"; job.Path = "member_name"; await QueueJob(job, queue); } break; case "longsleep": { job.Job = "Sleep"; job.Details = "LONG sleeping"; job.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job.Parameters.Add("Iterations", "30"); job.Parameters.Add("Delay", "5000"); await QueueJob(job, queue); } break; case "sleep": default: { job.Job = "Sleep"; job.Details = "Normal sleeping"; job.Parameters = new System.Collections.Generic.Dictionary <string, string>(); job.Parameters.Add("Iterations", "100"); job.Parameters.Add("Delay", "500"); await QueueJob(job, queue); } break; } return(View(model)); }
protected async Task QueueJobSet(JobSetModel model, string queue) { StorageHelper <JobSetModel> storage = new StorageHelper <JobSetModel>(_config); await storage.SaveToServiceBusQueue(model, queue); }