public void Execute(IJobExecutionContext context) { if (context.JobDetail.JobDataMap[context.JobDetail.Key.Name] != null) { GetJob(Convert.ToInt32(context.JobDetail.JobDataMap[context.JobDetail.Key.Name].ToString())); } if (job == null) { return; } //如果已暂定或停止的,不再执行 if (job.Job_state >= 2) { return; } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); int state = 0; Exception exce = null; string jobname = job.Job_name; DateTime dt = DateTime.Now; long ts = 0; try { Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + job.Job_assembly); object obj = assembly.CreateInstance(job.Job_class); Lib.IJob jobi = (Lib.IJob)obj; //jobi.JobLog += Jobi_JobLog; jobbll.UpdateJobState(new Job_Info() { Job_state = 1, Id = job.Id }); var r = jobi.Exceute(); //if (!r) // state = 1; } catch (Exception ex) { exce = ex; state = 1; } finally { jobbll.UpdateJobState(new Job_Info() { Job_state = 0, Id = job.Id }); stopwatch.Stop(); ts = stopwatch.ElapsedMilliseconds; this.Job_JobLog(state, jobname, exce, dt, ts); } }
public ActionResult Update(Job_Info job) { var bll = new JobInfoBLL(); if (bll.UpdateJobState(job) > 0) { return(Success()); } else { return(Error()); } }