コード例 #1
0
        public async Task TaskExecuter(EbTask _task)
        {
            try
            {
                IJobDetail job     = CreateJob(_task);
                ITrigger   trigger = CreateTrigger(_task);
                await Scheduler.ScheduleJob(job, trigger);

                MessageProducer3.Publish(new AddSchedulesToSolutionRequest()
                {
                    Task       = _task,
                    SolnId     = _task.JobArgs.SolnId,
                    UserId     = _task.JobArgs.UserId,
                    UserAuthId = _task.JobArgs.UserAuthId,
                    JobKey     = job.Key.Name,
                    TriggerKey = trigger.Key.Name,
                    Status     = ScheduleStatuses.Active,
                    ObjId      = _task.JobArgs.ObjId,
                    Name       = _task.Name
                });

                Console.WriteLine(job.Key + " Job Scheduled");
            }
            catch (Exception e)
            {
                Console.WriteLine("Task Executer Exception : " + e.Message);
            }
        }
コード例 #2
0
        public ITrigger CreateTrigger(EbTask _task)
        {
            ITrigger trigger = TriggerBuilder.Create()
                               .WithIdentity("T-" + _task.JobArgs.SolnId + "-" + _task.JobArgs.ObjId + "-" + _task.Expression + "-" + DateTime.Now)
                               .StartNow()
                               .WithSchedule(CronScheduleBuilder.CronSchedule(_task.Expression) /*.InTimeZone(TimeZoneInfo.FindSystemTimeZoneById("Coordinated Universal Time"))*/)
                               .Build();

            return(trigger);
        }
コード例 #3
0
        public IJobDetail CreateJob(EbTask _task)
        {
            JobKey     jobKey;
            IJobDetail job = null;

            JobDataMap _dataMap = new JobDataMap();

            _dataMap.Add("args", JsonConvert.SerializeObject(_task.JobArgs));

            jobKey = JobKey.Create(((JobTypes)_task.JobType).ToString() + DateTime.Now);

            if (_task.JobType == JobTypes.EmailTask)
            {
                job = JobBuilder.Create <EmailJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.SmsTask)
            {
                job = JobBuilder.Create <SmsJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.Slack)
            {
                job = JobBuilder.Create <SlackJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.ReportTask)
            {
                job = JobBuilder.Create <ReportJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.SqlJobTask)
            {
                job = JobBuilder.Create <SqlJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.ApiTask)
            {
                job = JobBuilder.Create <ApiJob>().WithIdentity(jobKey).UsingJobData(_dataMap).Build();
            }
            else if (_task.JobType == JobTypes.MyJob)
            {
                job = JobBuilder.Create <MyJob>().WithIdentity(jobKey).Build();
            }

            return(job);
        }