示例#1
0
        public static bool GetStatusAsync(CopySavedJob job)
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            TriggerKey key       = new TriggerKey(job.Name, job.Group);

            if (scheduler.IsStarted == true)
            {
                return(true);
            }

            return(false);
        }
示例#2
0
        public static bool Start(CopySavedJob copyJob)
        {
            var logger = LogManager.GetCurrentClassLogger();

            try
            {
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
                scheduler.Start();

                IJobDetail job = JobBuilder.Create <ArchiveJob>().WithDescription("Копирование").Build();

                CronExpression.ValidateExpression(copyJob.CronExpression);

                JobDataMap jobMap = new JobDataMap();
                jobMap.Put("Filter", copyJob.Filter);

                ITrigger trigger = TriggerBuilder.Create()                    // создаем триггер
                                   .WithIdentity(copyJob.Name, copyJob.Group) // идентифицируем триггер с именем и группой
                                   .StartNow()
                                   .WithCronSchedule(copyJob.CronExpression)  // каждую минуту
                                   .UsingJobData("StartPath", copyJob.StartPath)
                                   .UsingJobData("EndPath", copyJob.EndPath)
                                   .UsingJobData(jobMap)
                                   .UsingJobData("DeleteFiles", copyJob.DeleteFiles)
                                   .ForJob(job)
                                   .Build();                // создаем триггер


                if (job != null && trigger != null)
                {
                    scheduler.ScheduleJob(job, trigger);        // начинаем выполнение работы
                    logger.Info("Инициализация планировщика - " + copyJob.Name + ": " + copyJob.Group);
                    return(true);
                }
                else
                {
                    logger.Error("Ошибка инициализации планировщика - " + copyJob.Name + ": " + copyJob.Group);
                }
            }
            catch (Exception e)
            {
                logger.Error("Ошибка - " + e.Message);
            }

            //return ScheludeStatus.STOPPED;

            return(false);
        }
示例#3
0
        public static bool Stop(CopySavedJob job)
        {
            var logger = LogManager.GetCurrentClassLogger();

            try
            {
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

                TriggerKey key = new TriggerKey(job.Name, job.Group);

                scheduler.UnscheduleJob(key);
                scheduler.Shutdown();

                logger.Info("Задание - " + key.Name + ": " + key.Group + " остановлено !");

                return(true);
            }
            catch (Exception e)
            {
                logger.Error("Ошибка -" + e.Message);
            }

            return(false);
        }