Beispiel #1
0
        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));
        }
Beispiel #2
0
        public static Job GetJob(string id)
        {
            SchedulerDataSource ds = new SchedulerDataSource();
            Job j = ds.GetJobByID(ObjectId.Parse(id));

            Expand(j);

            return(j);
        }
Beispiel #3
0
        public static List <Job> GetAllJobs()
        {
            SchedulerDataSource ds      = new SchedulerDataSource();
            List <Job>          allJobs = ds.GetJobCollectionFromServer();

            foreach (Job j in allJobs)
            {
                Expand(j);
            }

            return(allJobs);
        }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
 public JobScheduler()
     : base()
 {
     _datasource = new SchedulerDataSource();
     sf          = new StdSchedulerFactory();
 }