Esempio n. 1
0
        public void ScheduleJobWithParam <TJobType>(string group, string name, string cron, string param, string value)
            where TJobType : IJob, new()
        {
            var job = JobBuilder.Create <TJobType>()
                      .WithIdentity(name, group)
                      .UsingJobData("Lock", "false")
                      .UsingJobData(param, value)
                      .StoreDurably()
                      .Build();
            var exists = sched.CheckExists(job.Key);

            if (exists.Result)
            {
                return;
            }
            var triggerName = name + "Trigger";

            SchedulerService.SetJobDataMap(job.Key, job.JobDataMap);
            var trigger = (ICronTrigger)TriggerBuilder.Create()
                          .WithIdentity(triggerName, group)
                          .WithCronSchedule(cron)
                          //.WithPriority(1)
                          .Build();

            SetTimeZoneForTrigger(trigger);

            var result = sched.ScheduleJob(job, trigger);
            var ft     = result.Result;

            log.Info(job.Key + " scheduled at: " + ft.ToUniversalTime() + " and repeat on cron: " +
                     trigger.CronExpressionString);
        }
Esempio n. 2
0
        public void ScheduleThriftJob <TJobType>(string group, string name, short port, int timeoutsec)
            where TJobType : GenericJob, new()
        {
            var job = JobBuilder.Create <TJobType>()
                      .WithIdentity(name, group)
                      .UsingJobData("port", port.ToString())
                      .StoreDurably()
                      .Build();
            var exists = sched.CheckExists(job.Key);

            if (exists.Result)
            {
                sched.DeleteJob(job.Key);
            }
            var triggerName = name + "Trigger";

            SchedulerService.SetJobDataMap(job.Key, job.JobDataMap);
            var trigger = TriggerBuilder.Create()
                          .WithIdentity(triggerName, group)
                          .StartAt(DateTime.Now.AddSeconds(timeoutsec))
                          .Build();

            var result = sched.ScheduleJob(job, trigger);
            var ft     = result.Result;

            log.Info(job.Key + " scheduled to start at " + ft);
        }
Esempio n. 3
0
        public async void Exit(IJobExecutionContext context)
        {
            DateTimeOffset now      = SystemTime.UtcNow();
            TimeSpan       duration = now - runTime;

            strMessage += ". For " + (long)duration.TotalMilliseconds + " ms. At " +
                          now.ToString(xtradeConstants.MTDATETIMEFORMAT) + " GMT";
            SchedulerService.LogJob(context, strMessage);
            if (log != null && !string.IsNullOrEmpty(strMessage))
            {
                log.Log(strMessage);
            }
            await Task.CompletedTask;
        }
Esempio n. 4
0
        public bool ScheduleJob(string typeClassName, string group, string name,
                                string cron) // where TJobType : GenericJob, new()
        {
            var type = Type.GetType(typeClassName);

            if (type == null)
            {
                return(false);
            }
            var job = JobBuilder.Create(type)
                      .WithIdentity(name, group)
                      .UsingJobData("Lock", "false")
                      .StoreDurably()
                      .Build();
            var exists = sched.CheckExists(job.Key);

            if (exists.Result)
            {
                return(false);
            }
            var triggerName = name + "Trigger";

            SchedulerService.SetJobDataMap(job.Key, job.JobDataMap);
            var trigger = (ICronTrigger)TriggerBuilder.Create()
                          .WithIdentity(triggerName, group)
                          .WithCronSchedule(cron)
                          //.WithPriority(1)
                          .Build();

            SetTimeZoneForTrigger(trigger);

            var result = sched.ScheduleJob(job, trigger);
            var ft     = result.Result;

            log.Info(job.Key + " scheduled at: " + ft.ToUniversalTime() + " and repeat on cron: " +
                     trigger.CronExpressionString);
            return(true);
        }