private async Task <bool> DeleteCronJob(CronObject job) { if (!CronJobs.ContainsKey(job.JobName)) { return(false); } await Schedular.PauseJob(job.CronJob.Key); await Schedular.DeleteJob(job.CronJob.Key); CronJobs.Remove(job.JobName); return(true); }
private void Cron_OnCronTrigger(CronObject cronObject) { if (cronObject == null) { return; } // ReSharper disable once AssignNullToNotNullAttribute try { var cronObjectHelper = (CronObjectHelper)cronObject.Object; var task = Activator.CreateInstance(cronObjectHelper.TaskType) as TaskBase; task?.ExecuteTask(cronObjectHelper.GroupName, (bool)_serviceSettings.GetPropertyValue(ServiceSettings.GetSettingNameReport(task, cronObjectHelper.GroupName)), (int)_serviceSettings.GetPropertyValue(ServiceSettings.GetSettingNameSendReportInterval(task, cronObjectHelper.GroupName)) * 60, (System.Diagnostics.EventLogEntryType)_serviceSettings.GetPropertyValue(ServiceSettings.GetSettingNameReportInformationLevel(task, cronObjectHelper.GroupName)), (uint)_serviceSettings.GetPropertyValue(ServiceSettings.GetSettingNameMaxErrorCount(task, cronObjectHelper.GroupName))); } catch (Exception e) { _serviceLogger.CreateLogRecord(e); } }
private static void OnCronTrigger(CronObject cronobject) { using (var workspace = WorkspaceFactory.Create()) { var trigger = workspace.Single <Trigger>(x => x.Id == ((Trigger)cronobject.Object).Id); if (trigger != null) { trigger.LastTrigger = DateTime.Now; workspace.CommitChanges(); if (AppServices.ActiveAppScreen != AppScreens.Dashboard) { RuleExecutor.NotifyEvent(RuleEventNames.TriggerExecuted, new { TriggerName = trigger.Name }); } } else { cronobject.Stop(); } } }
public void UpdateCronObjects() { CloseTriggers(); var triggers = Dao.Query <Trigger>(); foreach (var trigger in triggers) { var dataContext = new CronObjectDataContext(new List <CronSchedule> { CronSchedule.Parse(trigger.Expression) }) { Object = trigger, LastTrigger = trigger.LastTrigger }; var cronObject = new CronObject(dataContext); cronObject.OnCronTrigger += OnCronTrigger; _cronObjects.Add(cronObject); } _cronObjects.ForEach(x => x.Start()); }
private CronObject CreateCronObject(Type newTaskType, string groupName, string cronExpression) { var cronSchedule = CronSchedule.Parse(cronExpression); var cronSchedules = new List <CronSchedule> { cronSchedule }; var dc = new CronObjectDataContext { Object = new CronObjectHelper() { TaskType = newTaskType, GroupName = groupName }, CronSchedules = cronSchedules, LastTrigger = DateTime.Now }; var cron = new CronObject(dc); cron.OnCronTrigger += Cron_OnCronTrigger; cron.OnThreadAbort += Cron_OnThreadAbort; return(cron); }
private static void Cron_OnCronTrigger(CronObject cronObject) { SendRequest(); }
public static void StartServer() { try { // Startting HTTP server HttpServer = new PortalHttpServer(ServerPort); MainThread = new Thread(HttpServer.Listen); MainThread.Start(); // Starting Cron Job var now = DateTime.Now; var cronSchedule = CronSchedule.Parse("* * * * *"); var cronSchedules = new List<CronSchedule> { cronSchedule }; var dc = new CronObjectDataContext { Object = DateTime.Now, CronSchedules = cronSchedules, LastTrigger = now }; Cron = new CronObject(dc); Cron.OnCronTrigger += Cron_OnCronTrigger; Cron.Start(); // Set button text SetTextBtn(@"Stop"); SetColorDisplay(Color.Aquamarine); WriteDisplay("Server Started on port: " + ServerPort); } catch (Exception) { WriteDisplay("Unable to start server"); SetColorDisplay(Color.Tomato); } }
private async Task <bool> ScheduleCronJob(CronObject message) { await Schedular.ScheduleJob(message.CronJob, message.CronTrigger); return(true); }
private void Cron_OnThreadAbort(CronObject cronObject) { _serviceLogger.CreateLogRecord($"Thread aboreted. Task type {cronObject.Object}", System.Diagnostics.EventLogEntryType.Warning); }