Пример #1
0
        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());
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }