public ITriggerConfigurator WithIdentity(string name) { triggerBuilder.WithIdentity(name); return(this); }
public static ScheduledTaskStatus RegisterTask(ScheduledTask Task, TriggerBuilder TaskBuilder) { var sessionId = Guid.NewGuid().ToString("D"); var triggerKey = GenerateTriggerKey(); var taskType = Task.GetType(); var taskStatus = new ScheduledTaskStatus(Task, sessionId, triggerKey.Name); lock (_RunningTasksLock) { if (Task.SingleInstanceTask) { var existingGuid = _RunningTasks.Where(t => t.IsRunning && t.TaskType == taskType).Select(t => t.SessionId).FirstOrDefault(); if (existingGuid != null) throw new InvalidOperationException(string.Format("This Single-Instance Task is already running, SessionId: {0}", existingGuid)); } _RunningTasks.Add(taskStatus); } if (TaskBuilder != null) { ITrigger trigger = TaskBuilder.WithIdentity(triggerKey).Build(); IJobDetail jobDetails = new JobDetailImpl(sessionId, taskType) { Description = Task.TaskName, JobDataMap = trigger.JobDataMap }; _TaskScheduler.ScheduleJob(jobDetails, trigger); var nextTriggerTime = trigger.GetNextFireTimeUtc(); if (nextTriggerTime.HasValue) taskStatus.SetNextScheduledTimestamp(nextTriggerTime.Value.LocalDateTime); } return taskStatus; }
public IServiceCollectionTriggerConfigurator WithIdentity(string name) { triggerBuilder.WithIdentity(name); return(this); }