private dynamic CreateJob(dynamic arg) { Job job = new Job(); job.Name = Request.Form["Name"]; job.Url = Request.Form["Url"]; job.Interval = TimeSpan.Parse(Request.Form["Interval"]); job.Active = false; JobManager.AddJob(job); return new RedirectResponse("/"); }
public static void AddJob(Job job) { Jobs.Add(job); job.Save(); }
private static bool ShouldRun(Job job) { DateTimeOffset lastRun = (job.LastRun ?? DateTimeOffset.MinValue); return !JobsRunning.Contains(job) && job.Active && (DateTimeOffset.Now - lastRun) > job.Interval; }
private static void Run(Job job) { var run = job.AddRun(); var client = new WebClient(); try { System.Threading.Thread.Sleep(1000); run.Message = client.DownloadString(job.Url); } catch (Exception ex) { run.Failed(ex.ToString()); } var endTime = DateTimeOffset.Now; run.Finish(); JobsRunning.Remove(job); }
public static void Log(Job job, string message, Exception ex) { Console.WriteLine("Job {0} - '{1}': {2}\n{3}", job.Id, job.Name, message, ex); }
public static void Log(Job job, string message) { Console.WriteLine("Job {0} - '{1}': {2}", job.Id, job.Name, message); }
public Run(Job job) { _job = job; }