internal static void InitScheduler() { var properties = JobConfig.GetJobConfig(); ISchedulerFactory sf = new StdSchedulerFactory(properties); _scheduler = sf.GetScheduler().GetAwaiter().GetResult(); }
public bool RunAtOnce(string jobName, string jobGroupName) { try { JobKey jobKey = CreateJobKey(jobName, jobGroupName); JobDataModel jobData = Xml.XmlJobManage.GetJobDataByKey(jobKey); if (jobData == null) { return(false); } JobKey jobKeyOnce = CreateJobKey(jobName, JobConfig.JobGroupNameOnce); var type = typeof(HttpJob); if (jobData.JobType == JobType.Assembly) { string path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, jobData.AssemblyDllName); Assembly assembly = Assembly.LoadFile(path); type = assembly.GetType(jobData.TypeFullName); } var bl = _scheduler.CheckExists(jobKeyOnce).GetAwaiter().GetResult(); if (bl) { _scheduler.DeleteJob(jobKeyOnce); } IJobDetail jobDetail = JobBuilder.Create(type) .WithIdentity(jobKeyOnce) .UsingJobData(JobConfig.CallbackUrl, jobData.CallbackUrl) .UsingJobData(JobConfig.CallbackParams, JobUtils.GetDictToString(jobData.CallbackParams)) .Build(); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 2); ITrigger trigger = TriggerBuilder.Create() .WithIdentity(JobConfig.GetTriggerNameOnce(jobName), JobConfig.TriggerGroupNameOnce) .StartAt(startTime) .Build(); _scheduler.ScheduleJob(jobDetail, trigger).GetAwaiter().GetResult(); return(true); } catch (Exception ex) { logger.Error(ex); } return(false); }
public bool RunAtOnce(string jobName, string jobGroupName) { try { JobKey jobKey = CreateJobKey(jobName, jobGroupName); var jobData = _scheduler.GetJobDetail(jobKey).GetAwaiter().GetResult(); JobKey jobKeyOnce = CreateJobKey(jobName, JobConfig.JobGroupNameOnce); var bl = _scheduler.CheckExists(jobKeyOnce).GetAwaiter().GetResult(); if (bl) { _scheduler.DeleteJob(jobKeyOnce); } IJobDetail jobDetail = JobBuilder.Create(jobData.JobType) .WithIdentity(jobKeyOnce) .UsingJobData(JobConfig.CallbackUrl, jobData.JobDataMap[JobConfig.CallbackUrl].ToString()) .UsingJobData(JobConfig.CallbackParams, jobData.JobDataMap[JobConfig.CallbackParams].ToString()) .Build(); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(null, 2); ITrigger trigger = TriggerBuilder.Create() .WithIdentity(JobConfig.GetTriggerNameOnce(jobName), JobConfig.TriggerGroupNameOnce) .StartAt(startTime) .Build(); _scheduler.ScheduleJob(jobDetail, trigger).GetAwaiter().GetResult(); return(true); } catch (Exception ex) { logger.Error(ex); } return(false); }