public static bool CreateNewJob(string jobid, string jobType, string projName, string scriptName, string isActive, string start, string cronX) { Job j = new Job(); j.JobType = jobType; j.ProjectName = projName; j.ScriptFileName = scriptName; j.IsActive = isActive == "on" ? "true" : "false"; j.LastModified = DateTime.Now.ToString(); j.Schedule = new Dictionary <string, string>(); j.Schedule[JobSchedule.StartTime.ToString()] = start; j.Schedule[JobSchedule.CronX.ToString()] = cronX; j.Schedule[JobSchedule.Status.ToString()] = Conversions.ConvertTo(j.IsActive, false) ? JobStatus.Ready.ToString() : JobStatus.Disabled.ToString(); j.Schedule[JobSchedule.LastRunStart.ToString()] = string.Empty; j.Schedule[JobSchedule.LastRunComplete.ToString()] = string.Empty; j.Schedule[JobSchedule.LastRunExitCode.ToString()] = string.Empty; SchedulerDataSource ds = new SchedulerDataSource(); if (!String.IsNullOrEmpty(jobid)) { j._id = ObjectId.Parse(jobid); Job curJob = SchedulerService.GetJob(jobid); j.Schedule[JobSchedule.LastRunStart.ToString()] = curJob.Schedule[JobSchedule.LastRunStart.ToString()]; j.Schedule[JobSchedule.LastRunComplete.ToString()] = curJob.Schedule[JobSchedule.LastRunComplete.ToString()]; j.Schedule[JobSchedule.LastRunExitCode.ToString()] = curJob.Schedule[JobSchedule.LastRunExitCode.ToString()]; } else { j._id = ObjectId.GenerateNewId(); } return(ds.SaveJob(j)); }
public static Job GetJob(string id) { SchedulerDataSource ds = new SchedulerDataSource(); Job j = ds.GetJobByID(ObjectId.Parse(id)); Expand(j); return(j); }
public static List <Job> GetAllJobs() { SchedulerDataSource ds = new SchedulerDataSource(); List <Job> allJobs = ds.GetJobCollectionFromServer(); foreach (Job j in allJobs) { Expand(j); } return(allJobs); }
public virtual void JobToBeExecuted(IJobExecutionContext inContext) { //can determine what type of trigger this is an get more info from it if needed. Job job = inContext.Trigger.JobDataMap.Get(BaseJob.JOB_OBJ) as Job; job.Schedule[JobSchedule.LastRunStart.ToString()] = DateTime.Now.ToString(); job.Schedule[JobSchedule.LastRunComplete.ToString()] = String.Empty; job.Schedule[JobSchedule.Status.ToString()] = JobStatus.Running.ToString(); SchedulerDataSource ds = new SchedulerDataSource(); ds.SaveJob(job); WriteToLog(string.Format("[{0}][INFO][Job Begin][Job Key: {1}]", DateTime.Now.ToString(), inContext.JobDetail.Key.Name)); }
public static Job EnableDisableJob(string id) { SchedulerDataSource ds = new SchedulerDataSource(); Job j = ds.GetJobByID(ObjectId.Parse(id)); //swap the isactive flag around bool newstat = !Conversions.ConvertTo(j.IsActive, true); j.IsActive = (newstat).ToString(); j.LastModified = DateTime.Now.ToString(); j.Schedule["Status"] = newstat ? "Ready" : "Disabled"; //save it back to mongo ds.SaveJob(j); //expand it for UI use Expand(j); return(j); }
public virtual void JobWasExecuted(IJobExecutionContext inContext, JobExecutionException inException) { Job job = inContext.Trigger.JobDataMap.Get(BaseJob.JOB_OBJ) as Job; job.Schedule[JobSchedule.LastRunComplete.ToString()] = DateTime.Now.ToString(); job.Schedule[JobSchedule.Status.ToString()] = job.Schedule[JobSchedule.LastRunExitCode.ToString()] != "0" ? JobStatus.Failed.ToString() : Conversions.ConvertTo(job.IsActive, false) ? JobStatus.Ready.ToString() : JobStatus.Disabled.ToString(); WriteToLog(string.Format("[{0}][INFO][Job Complete][Job Key: {1}]", DateTime.Now.ToString(), inContext.JobDetail.Key.Name)); if (!Object.Equals(null, inException)) { job.Schedule[JobSchedule.Status.ToString()] = JobStatus.Failed.ToString(); WriteToLog(string.Format("[{0}][ERROR][Job Exception][Job Key: {1}][{2}]", DateTime.Now.ToString(), inContext.JobDetail.Key.Name, inException.Message), "ERROR"); ExceptionExtensions.LogError(inException.InnerException, "BTEQListener.JobWasExecuted()", "Job Key: " + inContext.JobDetail.Key.Name); } //else check the job datamap for any dependent jobs that should be triggered immediately SchedulerDataSource ds = new SchedulerDataSource(); ds.SaveJob(job); }
public void WebAPI_SchedulerDataSource_SaveJob() { ObjectId oid = ObjectId.GenerateNewId(); Job job = new Job { _id = oid , ScriptFileName = "scriptname.bteq" , ProjectName = "TestRun" , IsActive = "False" }; job.Schedule = new Dictionary <string, string>(); job.Schedule.Add("StartTime", "12:15"); job.Schedule.Add("LastRunStart", DateTime.Now.ToString()); job.Schedule.Add("LastRunComplete", DateTime.Now.AddMinutes(1).ToString()); job.Schedule.Add("LastRunExitCode", "0"); job.Schedule.Add("Status", JobStatus.Disabled.ToString()); job.Schedule.Add("CronX", "0 0/2 * * * ?"); SchedulerDataSource ds = new SchedulerDataSource(); ds.SaveJob(job); }
public void AddJobToMongoPMGJobs() { Job job = new Job { IsActive = "false" , ScriptFileName = @"\\jomax.paholdings.com\data\Busintel\Scheduler\TrafficBatch\trafficbatch.bteq" , ProjectName = "TrafficBatch" , JobType = "bteq" , LastModified = DateTime.Now.ToString() }; job.Schedule = new Dictionary <string, string>(); job.Schedule.Add("StartTime", "05:00"); job.Schedule.Add("LastRunStart", String.Empty); job.Schedule.Add("LastRunComplete", String.Empty); job.Schedule.Add("LastRunExitCode", String.Empty); job.Schedule.Add("Status", JobStatus.Disabled.ToString()); job.Schedule.Add("CronX", "0 0/10 * * * ?"); SchedulerDataSource schds = new SchedulerDataSource(); schds.AddJobToCollection(job); }
public JobScheduler() : base() { _datasource = new SchedulerDataSource(); sf = new StdSchedulerFactory(); }