public static void jobCallback(object state) { WebJob job = (WebJob)state; Timer mytimer = timers[job]; mytimer.Change(Timeout.Infinite, job.Interval); IWebJobItem obj = ObjectContext.GetByType(job.Type) as IWebJobItem; if (obj == null) { logger.Info("job[" + job.Name + "] type does not exists:" + job.Type); return; } try { obj.Execute(); } catch (Exception ex) { logger.Error(ex.Message + Environment.NewLine + ex.StackTrace); } finally { obj.End(); DbContext.closeConnectionAll(); mytimer.Change(job.Interval, job.Interval); } }
private string getLinkStop( WebJob job ) { if (job.IsRunning) return string.Format( "<span class=\"running\">{1} <span href=\"{0}\" class=\"stopCmd cmd\">{2}</span></span>", to( Stop, job.Id ), lang( "running" ), lang( "jobStop" ) ); else return string.Format( "<span class=\"stopped\">{1} <span href=\"{0}\" class=\"startCmd cmd\">{2}</span></span>", to( Start, job.Id ), lang( "stopped" ), lang( "jobStart" ) ); }
private static void startJob() { IList jobs = new WebJob().findAll(); foreach (WebJob job in jobs) { if (job.Interval <= 0) { logger.Warn("job is invalid, name:" + job.Name + ", type:" + job.Type + ", interval:" + job.Interval); continue; } if (job.IsRunning == false) { continue; } timers.Add(job, new Timer(new TimerCallback(jobCallback), job, job.Interval, job.Interval)); } }
private static void startJob() { IList jobs = new WebJob().findAll(); foreach (WebJob job in jobs) { if (job.Interval <= 0) { logger.Warn( "job is invalid, name:" + job.Name + ", type:" + job.Type + ", interval:" + job.Interval ); continue; } if (job.IsRunning == false) continue; timers.Add( job, new Timer( new TimerCallback( jobCallback ), job, job.Interval, job.Interval ) ); } }