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);
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        protected async Task QueueJobSet(JobSetModel model, string queue)
        {
            StorageHelper <JobSetModel> storage = new StorageHelper <JobSetModel>(_config);

            await storage.SaveToServiceBusQueue(model, queue);
        }