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); }
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); }
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; }
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); }