Esempio n. 1
0
        public static void Start()
        {
            //0 15 10 * * ? *	每天上午10:15触发
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); //从工厂中获取一个调度器实例化

            scheduler.Start();                                                //开始调度器
            IJobDetail job = JobBuilder.Create <ContractJob>().Build();       //创建一个作业
            //ITrigger trigger = TriggerBuilder.Create()
            //    .WithSimpleSchedule(t =>
            //    t.WithIntervalInSeconds(5) //触发执行,5s一次
            //    .RepeatForever())          //重复执行
            //    .Build();
            //scheduler.ScheduleJob(job, trigger);       //把作业,触发器加入调度器。


            //每天上午10:15触发
            ITrigger trigger = TriggerBuilder.Create().WithCronSchedule("0 15 10 ? * *")
                               .WithIdentity("ContractJob", "group1")
                               .StartNow()
                               .Build();

            scheduler.ScheduleJob(job, trigger);       //把作业,触发器加入调度器。
        }
        public static async System.Threading.Tasks.Task StartAsync()
        {
            try
            {
                var scheduler = await StdSchedulerFactory.GetDefaultScheduler();

                if (!scheduler.IsStarted)
                {
                    await scheduler.Start();
                }
                var job = JobBuilder.Create <ExecuteTaskServiceCallJob>()
                          .WithIdentity("ExecuteTaskServiceCallJob1", "group1")
                          .Build();
                var trigger = TriggerBuilder.Create()
                              .WithIdentity("ExecuteTaskServiceCallTrigger1", "group1")
                              .WithCronSchedule(ScheduleCronExpression)
                              .Build();
                await scheduler.ScheduleJob(job, trigger);
            }
            catch (Exception ex)
            {
            }
        }
Esempio n. 3
0
        public static void ExecuteWithInterval(int second, Action action)
        {
            //scheduler
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            //more job
            {                                        //job
                JobDetailImpl job = new JobDetailImpl("zszTimer", typeof(IntervalJob));
                job.JobDataMap.Add("dosth", action); //任务数据

                //trigger
                IMutableTrigger trigger =
                    CalendarIntervalScheduleBuilder.Create()
                    .WithIntervalInSeconds(second).Build();
                trigger.Key = new TriggerKey("zszTrigger");

                //watch
                scheduler.ScheduleJob(job, trigger);
            }

            //start
            scheduler.Start();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            try
            {
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

                scheduler.Start();
                AddJob(scheduler, new FacebookJob(), "10 0 * * * ?");
                AddJob(scheduler, new NetGroupsUpdateJob(), "20 0 */8 * * ?");
                AddJob(scheduler, new BlogsUpdateJob(), "20 0 */8 * * ?");

                while (true)
                {
                    Thread.Sleep(1000 * 31337);
                }

                //scheduler.Shutdown();
            }
            catch (SchedulerException se)
            {
                Console.WriteLine(se);
            }
        }
Esempio n. 5
0
        // <summary>
        /// 任务工厂
        /// </summary>
        /// <typeparam name="T">工作类</typeparam>
        /// <param name="DetailName">工作名称</param>
        /// <param name="TriggerName">触发器名称</param>
        /// <param name="Minute">多长秒触发一次</param>
        /// <param name="Group">组别</param>
        public static async void JobFactory <T>(string DetailName, string TriggerName, int Minute, string GroupName = "Group")
            where T : IJob
        {
            // 创建调度器
            scheduler = await StdSchedulerFactory.GetDefaultScheduler();

            // 启动
            await scheduler.Start();

            // 描述工作
            var jobDetail = new JobDetailImpl(DetailName, GroupName, typeof(T));
            // var jobDetails = JobBuilder.Create<T>().WithIdentity(DetailName,GroupName).Build();
            //触发器
            ISimpleTrigger trigger = new SimpleTriggerImpl(TriggerName,
                                                           GroupName,
                                                           DateTime.Now,
                                                           null,
                                                           SimpleTriggerImpl.RepeatIndefinitely,
                                                           TimeSpan.FromSeconds(Minute));
            // var triggers = TriggerBuilder.Create().WithIdentity(TriggerName, GroupName).WithCronSchedule("00 15 10 * *?*").Build();
            //执行
            await scheduler.ScheduleJob(jobDetail, trigger);
        }
Esempio n. 6
0
        public Service()
        {
            scheduler = StdSchedulerFactory.GetDefaultScheduler();


            index    = 1;
            newIndex = 1;
            updDisp  = false;
            updDone  = false;

            intervalJobKey        = new JobKey("iJK");
            anotherIntervalJobKey = new JobKey("aIJK");



            scheduler.Start();


            scheduler.ListenerManager.AddJobListener(this, OrMatcher <JobKey> .Or(KeyMatcher <JobKey> .KeyEquals <JobKey>(intervalJobKey), KeyMatcher <JobKey> .KeyEquals <JobKey>(anotherIntervalJobKey)));

            startIntervalJob(1);
            startAnotherIntervalJob(5);
        }
Esempio n. 7
0
        public async Task <object> RunJob(string jobName, string cron = "30 0/1 * 1/1 * ? *")
        {
            // get a scheduler
            IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();

            if (!scheduler.IsStarted)
            {
                await scheduler.Start();
            }

            IJobDetail job = JobBuilder.Create <WriteLogJob>()
                             .WithIdentity("MVCTestHomeIndexJob_" + jobName, "MVCTestHomeIndexJobGroup")
                             .Build();

            ITrigger trigger = TriggerBuilder.Create()
                               .WithIdentity("MVCTestHomeIndexTrigger_" + jobName, "MVCTestHomeIndexJobGroup")
                               .StartNow()
                               //.WithCronSchedule(cron)
                               .WithSimpleSchedule(x => x
                                                   .WithIntervalInMinutes(1)
                                                   .RepeatForever())
                               .Build();

            try
            {
                await scheduler.ScheduleJob(job, trigger);

                string result = string.Format("Job name: {0}, State: {1}, Next Fire Time: {2}", job.Key.Name, scheduler.GetTriggerState(trigger.Key).Result.ToString(), trigger.GetNextFireTimeUtc().Value.LocalDateTime.ToString("dd/MM/yyyy HH:mm:ss"));
                //await Log.WriteTextAsync("Job added");
                //await Log.WriteJobInfo();
                return(Json(new { code = 1, result = result }, JsonRequestBehavior.AllowGet));
            }
            catch (SchedulerException ex)
            {
                return(Json(new { code = 1, result = "Error: " + ex.ToString() }, JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 8
0
        private void ConfigureQuartz()
        {
            //Crearemos job para expirar todos los productos que caduquen cada dia a las 12 de la noche.
            try
            {
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler().Result;


                scheduler.Start();

                IJobDetail job = JobBuilder.Create <ExpirationJob>()
                                 .WithIdentity("ExpirationJob", "InventoryJobs")
                                 .Build();


                DateTime now = DateTime.UtcNow;
                //Hora cuando empezará la job
                DateTime startDate = new DateTime(now.Year, now.Month, now.Day + 1, 0, 0, 0);


                ITrigger trigger = TriggerBuilder.Create()
                                   .WithIdentity("ExpirationTrigger", "InventoryTriggers")
                                   .StartAt(startDate)
                                   //.StartNow()
                                   .WithSimpleSchedule(x => x
                                                       .WithIntervalInHours(24)
                                                       .RepeatForever())
                                   .Build();


                scheduler.ScheduleJob(job, trigger);
            }
            catch (Exception e)
            {
                Logger.Error("Fallo al iniciar quartz. || Exception: " + JsonConvert.SerializeObject(e), "api/v1/output");
            }
        }
Esempio n. 9
0
        static void Main(string[] args)
        {
            //从工厂中获取一个调度器实例化
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            //开启调度器
            scheduler.Start();
            //JobDetail
            //JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。
            //创建作业
            IJobDetail job1 = JobBuilder.Create <TestJob1>()
                              .WithIdentity("myJob1", "group1")
                              .Build();
            IJobDetail job2 = JobBuilder.Create <TestJob2>()
                              .WithIdentity("myJob2", "group2")
                              .UsingJobData("jobSays", "helloworld")
                              .UsingJobData("myFloatValue", 3.141f)
                              .Build();
            //Trigger代表一个调度参数的配置,什么时候去调

            ITrigger tigger1 = TriggerBuilder.Create()
                               .WithIdentity("tiggerName1", "tiggerGroup1")
                               .WithSimpleSchedule(x => x.WithIntervalInSeconds(1).RepeatForever())
                               .StartAt(DateTime.Now.AddSeconds(5))
                               .EndAt(DateTime.Now.AddSeconds(20))
                               .Build();
            ITrigger tigger2 = TriggerBuilder.Create().WithIdentity("tiggerName2", "tiggerGroup2").WithSimpleSchedule
                                   (x => x.WithIntervalInSeconds(1).WithRepeatCount(10)).Build();

            //AOP切入
            scheduler.ListenerManager.AddJobListener(new MyAopListener(), GroupMatcher <JobKey> .AnyGroup());

            //把作业,触发器加入调度器。
            //Scheduler代表一个调度容器,一个调度容器中可以注册多个JobDetail和Trigger。当Trigger与JobDetail组合,就可以被Scheduler容器调度了。
            scheduler.ScheduleJob(job2, tigger2);
            scheduler.ScheduleJob(job1, tigger1);
        }
        public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            IJobDetail job     = JobBuilder.Create <Jobclass>().Build();
            ITrigger   trigger = TriggerBuilder.Create()
                                 .WithIdentity("trigger1", "group1")
                                 .StartNow()
                                 .WithSimpleSchedule(x => x
                                                     .WithIntervalInMinutes(3)
                                                     .RepeatForever())
                                 .Build();

            IJobDetail job1     = JobBuilder.Create <JobFeeClass>().Build();
            ITrigger   trigger1 = TriggerBuilder.Create()
                                  .WithIdentity("trigger2", "group2")
                                  .StartNow()
                                  .WithSimpleSchedule(x => x
                                                      .WithIntervalInMinutes(45)
                                                      .RepeatForever())
                                  .Build();

            IJobDetail job2     = JobBuilder.Create <JobTRClass>().Build();
            ITrigger   trigger2 = TriggerBuilder.Create()
                                  .WithIdentity("trigger3", "group3")
                                  .StartNow()
                                  .WithSimpleSchedule(x => x
                                                      .WithIntervalInHours(1)
                                                      .RepeatForever())
                                  .Build();

            scheduler.ScheduleJob(job, trigger);
            scheduler.ScheduleJob(job1, trigger1);
            scheduler.ScheduleJob(job2, trigger2);
        }
Esempio n. 11
0
        private async void btnStartJob_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // Grab the Scheduler instance from the Factory
                IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();

                // and start it off
                await scheduler.Start();

                IJobDetail job = JobBuilder.Create <MonitorJob>()
                                 .WithIdentity("job1", "group1")
                                 .Build();

                // Trigger the job to run now, and then repeat every 10 seconds
                ITrigger trigger = TriggerBuilder.Create()
                                   .WithIdentity("trigger1", "group1")
                                   .StartNow()
                                   .WithSimpleSchedule(x => x
                                                       .WithIntervalInSeconds(10)
                                                       //.WithIntervalInHours(1)
                                                       .RepeatForever())
                                   .Build();

                await scheduler.ScheduleJob(job, trigger);

                // some sleep to show what's happening
                Thread.Sleep(TimeSpan.FromSeconds(3));

                // and last shut down the scheduler when you are ready to close your program
                await scheduler.Shutdown();
            }
            catch (SchedulerException se)
            {
                Console.WriteLine(se);
            }
        }
Esempio n. 12
0
        static void Main(string[] args)
        {
            #region Quartz.Net
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();                                                         //从工厂中获取一个调度器实例化
            scheduler.Start();                                                                                                        //开始调度器
            IJobDetail job     = JobBuilder.Create <TotalJob>().Build();                                                              //创建一个作业
            ITrigger   trigger = TriggerBuilder.Create().WithSimpleSchedule(t => t.WithIntervalInSeconds(5).RepeatForever()).Build(); //触发执行 5s一次
            scheduler.ScheduleJob(job, trigger);
            Console.ReadKey();
            #endregion

            #region HttpWebRequest
            //HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");
            //using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse())
            //{
            //    //response.StatusCode  404 500 200
            //    if (response.StatusCode == HttpStatusCode.OK)
            //    {
            //        using (Stream stream = response.GetResponseStream())
            //        {
            //            using(StreamReader reader=new StreamReader(stream))
            //            {
            //                string html = reader.ReadToEnd();
            //                Console.WriteLine(html);
            //            }
            //        }

            //    }
            //    else
            //    {
            //        Console.WriteLine("服务器返回错误:" + response.StatusCode);
            //    }
            //}

            //Console.ReadKey();
            #endregion
        }
        public async Task <Result <JobDto> > TriggerJob <TJob>(JobDto jobDto) where TJob : IJob
        {
            Result <JobDto> result;

            try
            {
                _scheduler = await StdSchedulerFactory.GetDefaultScheduler();

                await _scheduler.Start();

                _jobName = $"{typeof(TJob).FullName}-{jobDto.Guid}";
                _job     = JobBuilder.Create <TJob>()
                           .WithIdentity($"{_jobName}.{jobDto.Guid}")
                           .StoreDurably(true)
                           .Build();

                _cronTrigger    = GenerateCronTrigger(jobDto, false, _jobName);
                _triggerBuilder = TriggerBuilder.Create();

                _trigger = _triggerBuilder
                           .ForJob(_job.Key)
                           .WithCronSchedule(jobDto.JobDataDtoList.FirstOrDefault().TimerRegex)
                           .WithIdentity($"{_jobName}.{jobDto.Guid}")
                           .Build();

                _dateTimeOffset = await _scheduler.ScheduleJob(_job, _cronTrigger);

                jobDto.LastRunTime = _dateTimeOffset.UtcDateTime;
                result             = new Result <JobDto>(jobDto);
            }
            catch (Exception ex)
            {
                result = new Result <JobDto>(false, $"An error occured while triggering job. Ex : {ex.ToString()}");
            }
            return(result);
        }
        private void InitScheduledJobs()
        {
            // Quartz.Net initialization
            log.Debug("Starting Quartz.Net engine");
            scheduler = StdSchedulerFactory.GetDefaultScheduler();
            scheduler.Start();

            #region NotificacionDeNuevasBoletasDeConsolidacion

            IJobDetail jobNotificacionDeNuevasBoletasDeConsolidacion = JobBuilder.Create <NotificacionDeNuevasBoletasDeConsolidacion>()
                                                                       .Build();

            ITrigger triggerNotificacionDeNuevasBoletasDeConsolidacion = TriggerBuilder.Create()
                                                                         .WithDailyTimeIntervalSchedule(x => x
                                                                                                        .WithIntervalInHours(24)
                                                                                                        .OnEveryDay()
                                                                                                        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(23, 0))) // Corre todos los dias a las 11PM
                                                                         .Build();

            scheduler.ScheduleJob(jobNotificacionDeNuevasBoletasDeConsolidacion, triggerNotificacionDeNuevasBoletasDeConsolidacion);

            #endregion

            #region NotificacionDeFaltaDeRegistroDeAsistencia

            IJobDetail jobNotificacionDeFaltaDeRegistroDeAsistencia = JobBuilder.Create <NotificacionDeFaltaDeRegistroDeAsistencia>()
                                                                      .Build();

            ITrigger triggerNotificacionDeFaltaDeRegistroDeAsistencia = TriggerBuilder.Create()
                                                                        .WithCronSchedule("0 0,30 * * * ?") // Corre cada hora y cada minuto 30 de cada hora
                                                                        .Build();

            scheduler.ScheduleJob(jobNotificacionDeFaltaDeRegistroDeAsistencia, triggerNotificacionDeFaltaDeRegistroDeAsistencia);

            #endregion
        }
Esempio n. 15
0
        public void Start()
        {
            logger.Info("Scheduler started...");
            if (scheduler == null || scheduler.IsShutdown)
            {
                scheduler = StdSchedulerFactory.GetDefaultScheduler();
            }

            // analyze
            JobKey     analyzeKey      = new JobKey(CRAWL_ANALYZE_JOB_KEY, GROUP_UPLOAD);
            IJobDetail crawlAnalyzeJob = JobBuilder.Create <FreeBtcJob>().WithIdentity(analyzeKey).Build();

            //crawlAnalyzeJob.JobDataMap.Add("DELAY", maxDelay);

            ITrigger triggerJob = null;
            //if (runOnce)
            //{
            //    triggerJob = TriggerBuilder.Create().StartNow().WithIdentity(CRAWL_ANALYZE_JOB_KEY, GROUP_UPLOAD)
            //    .WithSimpleSchedule()
            //    .Build();

            //}
            //else
            //{
            string cronExpress = "";

            triggerJob = TriggerBuilder.Create().StartNow().WithIdentity(CRAWL_ANALYZE_JOB_KEY, GROUP_UPLOAD)
                         //.WithCronSchedule(cronExpress)
                         .WithSimpleSchedule()
                         .Build();

            //}

            scheduler.ScheduleJob(crawlAnalyzeJob, triggerJob);
            scheduler.Start();
        }
Esempio n. 16
0
        public static void StartJobSchedule <T>(string cronExpression, string jobName, string groupName) where T : IJob
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            if (scheduler.CheckExists(new JobKey(jobName, groupName)))
            {
                throw new Exception("Já existe job agendado.");
            }

            IJobDetail job = JobBuilder.Create <T>()
                             .WithIdentity(jobName, groupName)
                             .Build();

            ITrigger trigger = TriggerBuilder.Create()

                               .WithIdentity("trg_" + jobName, groupName)
                               .WithPriority(1)
                               .WithCronSchedule(cronExpression)
                               .Build();

            scheduler.ScheduleJob(job, trigger);
        }
Esempio n. 17
0
        public static bool Stop(ArchiveSavedJob 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);
        }
Esempio n. 18
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            try
            {
                String     start_one = WebConfigurationManager.AppSettings["update_data_at_one"];
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
                scheduler.Start();
                IJobDetail job = JobBuilder.Create <QuartzSchedule>()
                                 .WithIdentity("jobName", "jobGroup")
                                 .Build();
                var trigger = TriggerBuilder.Create()
                              .WithIdentity("trigger3", "group1")
                              .WithCronSchedule(start_one)
                              .ForJob("jobName", "jobGroup")
                              .Build();
                scheduler.ScheduleJob(job, trigger);
            }
            catch { }
        }
Esempio n. 19
0
        static async Task Main(string[] args)
        {
            var scheduler = await StdSchedulerFactory.GetDefaultScheduler();

            await scheduler.Start();

            var job = JobBuilder
                      .CreateForAsync <WanikaniStatsJob>()
                      .Build();

            var trigger = TriggerBuilder
                          .Create()
                          //.StartNow()
                          .StartAt(DateTime.UtcNow.Date.AddDays(1))
                          .WithSimpleSchedule(builder =>
                                              builder
                                              .WithIntervalInHours(24)
                                              .RepeatForever())
                          .Build();

            await scheduler.ScheduleJob(job, trigger);

            await Task.Delay(-1);
        }
Esempio n. 20
0
        public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            IJobDetail job = JobBuilder.Create <Foo>().Build();

            //default
            ITrigger trigger = TriggerBuilder.Create()
                               .StartNow()
                               .WithSimpleSchedule(x => x
                                                   .WithIntervalInSeconds(30)
                                                   .RepeatForever())
                               .Build();

            //ITrigger trigger = TriggerBuilder.Create()
            //.StartNow()
            //.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(11, 11)) // execute job daily at 9:30
            //.Build();

            scheduler.ScheduleJob(job, trigger);
            //scheduler.Shutdown();
        }
Esempio n. 21
0
        /// <summary>
        /// CronSchedule 根据字符串来替代之前的简单计划表,日历计划表,每天计划表
        /// </summary>
        public static void Fun10()
        {
            var sche = StdSchedulerFactory.GetDefaultScheduler();

            sche.Start();

            var job = JobBuilder.Create <MyJob>()
                      .Build();
            //秒 分 时 天 月 年 周
            //1. 天或者周必须有一个是?(?表示模糊)
            //2. * 表示所有值即,秒位为*表示每秒执行一次
            //3. - 表示范围,分钟位为10-12表示每个小时的10,11,12分执行一次
            //4. , 表示每个值即,分钟位为10,20,30表示每个小时的10,20,30分执行一次
            //5. / 表示递增,秒位为0/5表示0,5,10,15,20,25,30,35,40,45,50,55秒执行一次
            //例子:
            // * * * * * ?       => 每秒执行一次
            // 0/5 * * * * ?   => 5s执行一次
            // 0 * * * * ?       => 1min执行一次
            // 0 0 1 * * ?       => 每个月1号执行一次
            // 地址:https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html
            var trigger = TriggerBuilder.Create().StartNow().WithCronSchedule("0/1 * * * * ?").Build();

            sche.ScheduleJob(job, trigger);
        }
Esempio n. 22
0
        public void Run()
        {
            this._scheduler = StdSchedulerFactory.GetDefaultScheduler();

            this._scheduler.Start();

            #region Email job(s)

            IJobDetail EmailJob =
                JobBuilder.Create <EmailSendTask>()
                .WithIdentity("EmailSendJob", "Email")
                .Build();

            ITrigger EmailTrigger =
                TriggerBuilder.Create()
                .WithIdentity("EmailTrigger", "Email")
                .StartNow()
                .WithCronSchedule("0 59 23 1/1 * ? *")
                .Build();

            this._scheduler.ScheduleJob(EmailJob, EmailTrigger);

            #endregion
        }
Esempio n. 23
0
        public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            IJobDetail monthlyBirthdayJob = JobBuilder.Create <MonthlyBirthdayJob>().Build();
            IJobDetail dailyBirthdayJob   = JobBuilder.Create <DailyBirthdayJob>().Build();
            IJobDetail dailyVacationJob   = JobBuilder.Create <RetireVacationsJob>().Build();

            ITrigger monthlyBirthdayTrigger = TriggerBuilder.Create()
                                              .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 8, 0))
                                              .Build();
            ITrigger dailyVacationTrigger = TriggerBuilder.Create()
                                            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(2, 0))
                                            .Build();
            ITrigger dailyBirthdayTrigger = TriggerBuilder.Create()
                                            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(2, 0))
                                            .Build();

            scheduler.ScheduleJob(monthlyBirthdayJob, monthlyBirthdayTrigger);
            scheduler.ScheduleJob(dailyBirthdayJob, dailyBirthdayTrigger);
            scheduler.ScheduleJob(dailyVacationJob, dailyVacationTrigger);
        }
Esempio n. 24
0
        public async void Star()
        {
            try
            {
                myscheduler = await StdSchedulerFactory.GetDefaultScheduler();

                await myscheduler.Start();

                CronScheduleBuilder shed = CronScheduleBuilder
                                           .CronSchedule(cron_expression); //48,49,50,51,52 10,11,12,13 ? * MON,TUE,WED *");

                IJobDetail job = JobBuilder.Create <TextSender>()
                                 .WithIdentity("job1", "group1")
                                 .Build();

                ITrigger trigger = TriggerBuilder.Create()             // создаем триггер
                                   .WithIdentity("trigger1", "group1") // идентифицируем триггер с именем и группой
                                   .StartNow()                         // запуск сразу после начала выполнения
                                   .WithSchedule(shed)                 // настраиваем выполнение действия
                                                                       // через 1 минуту
                                                                       // бесконечное повторение
                                   .Build();                           // создаем триггер
                /// начинаем выполнение работы
                //String newCronExpression = cron_expression; // the desired cron expression



                await myscheduler.RescheduleJob(trigger.Key, trigger);

                await myscheduler.ScheduleJob(job, trigger);
            }
            catch (Exception ex)
            {
                Console.WriteLine("class SenderSheduler \r method Start \r" + ex.Message);
            }
        }
Esempio n. 25
0
        public static void InitJobs(PlayerHelper player, string strtime)
        {
            try
            {
                var strtimes = strtime.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                Common.Logging.LogManager.Adapter = new Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter {
                    Level = Common.Logging.LogLevel.Info
                };
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
                scheduler.Start();

                for (int i = 0; i < strtimes.Length; i += 2)
                {
                    IJobDetail job = JobBuilder.Create <PlayMusicJob>().WithIdentity("job" + i.ToString(), "group1").Build();
                    job.JobDataMap.Add("playerHelper", player);
                    ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger" + i.ToString(), "group2").ForJob("job" + i.ToString(), "group1")
                                       .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(int.Parse(strtimes[i]), int.Parse(strtimes[i + 1]))).Build();
                    scheduler.ScheduleJob(job, trigger);
                }
            }catch (Exception er)
            {
                throw er;
            }
        }
Esempio n. 26
0
        static void Schedule()
        {
            int naggingInterval;

            using (var scope = Container.BeginLifetimeScope())
            {
                var settingsService = scope.Resolve <ISettingsService>();
                naggingInterval = settingsService.GetSetting <int>("NaggingInterval");
            }

            var scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            var job = JobBuilder.Create <JobRunner>()
                      .WithIdentity("naggerJob")
                      .Build();

            var trigger = TriggerBuilder.Create()
                          .WithIdentity("naggerJob")
                          .StartNow()
                          .WithSimpleSchedule(x => x
                                              .WithIntervalInMinutes(naggingInterval)
                                              .RepeatForever())
                          .Build();

            var nightlyJob = JobBuilder.Create <NightlyJob>().WithIdentity("nightlyJob").Build();

            var nightlyTrigger = TriggerBuilder.Create()
                                 .WithIdentity("nightlyJob")
                                 .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(23, 55))
                                 .Build();

            scheduler.ScheduleJob(job, trigger);
            scheduler.ScheduleJob(nightlyJob, nightlyTrigger);
        }
Esempio n. 27
0
        public static async void Start(int callerId, string callerNumber, string callerPassword)
        {
            Caller caller = Caller.Instance();

            caller.CallerId       = callerId.ToString();
            caller.CallerNumber   = callerNumber.ToString();
            caller.CallerPassword = callerPassword.ToString();
            IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();

            await scheduler.Start();

            IJobDetail job = JobBuilder.Create <ReapetedTask>().Build();

            ITrigger trigger = TriggerBuilder.Create()                                                       // создаем триггер
                                                                                                             //для каждого телефона нужен свои группа и триггер. При одинаковых триггирах и группах вызывает исключение что такой таск уже запущен.
                               .WithIdentity("trigger" + callerId.ToString(), "group" + callerId.ToString()) // идентифицируем триггер с именем и группой
                               .StartNow()                                                                   // запуск сразу после начала выполнения
                               .WithSimpleSchedule(x => x                                                    // настраиваем выполнение действия
                                                   .WithIntervalInSeconds(4)                                 // через 4 секунлы
                                                   .RepeatForever())                                         // бесконечное повторение
                               .Build();                                                                     // создаем триггер

            await scheduler.ScheduleJob(job, trigger);                                                       // начинаем выполнение работы
        }
Esempio n. 28
0
        public ServiceCreator()
        {
            Initialize();

            Scheduler = StdSchedulerFactory.GetDefaultScheduler();

            IJobDetail customJob = JobBuilder.Create <CustomJob>()
                                   .WithIdentity("CustomJob", "EncuentrameGroup")
                                   .Build();



            ITrigger customJobTrigger = TriggerBuilder.Create()
                                        .WithIdentity("CustomJobTrigger", "EncuentrameGroup")
                                        .StartAt(DateTimeOffset.Now.AddSeconds(30))
                                        .WithSimpleSchedule(x => x
                                                            .WithIntervalInSeconds(60)
                                                            .RepeatForever())
                                        .Build();



            Scheduler.ScheduleJob(customJob, customJobTrigger);
        }
Esempio n. 29
0
        /// <summary>
        /// WithCronSchedule的哑火策略
        /// 哑火策略:WithMisfireHandlingInstructionFireAndProceed
        /// 哑火的任务合并到一次执行,下次正常执行
        ///
        /// 哑火策略:WithMisfireHandlingInstructionIgnoreMisfires
        /// 追赶执行哑火的任务,下次正常执行
        ///
        /// 哑火策略:WithMisfireHandlingInstructionDoNothing
        /// 什么都不做,下次正常执行
        /// </summary>
        public static void Fun6()
        {
            var scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            //将键值对传给定时器
            var job = JobBuilder.Create <MyJob>()
                      .Build();

            var trigger = TriggerBuilder.Create()
                          .StartAt(DateBuilder.DateOf(7, 0, 0))
                          .WithCronSchedule("0 0 7-20 ? * MON-FRI", //工作日8AM - 8PM每小时执行一次
                                                                    //哑火的任务合并到一次执行,下次正常执行
                                                                    //m => m.WithMisfireHandlingInstructionFireAndProceed()
                                                                    //追赶执行哑火的任务,下次正常执行
                                                                    //m => m.WithMisfireHandlingInstructionIgnoreMisfires()
                                                                    //什么都不做,下次正常执行
                                            m => m.WithMisfireHandlingInstructionDoNothing()
                                            )
                          .Build();

            scheduler.ScheduleJob(job, trigger);
        }
Esempio n. 30
0
        /// <summary>
        /// 将类型从Job队列中删除
        /// </summary>
        /// <param name="type">类型</param>
        /// <param name="job">job</param>
        public static void DelteToQuartz(Type type, TbJob job)
        {
            var obj = Activator.CreateInstance(type);

            if (!(obj is ISchedulingJob))
            {
                return;
            }
            var tmp    = obj as ISchedulingJob;
            var cancel = tmp.CancellationSource;
            var name   = job.Name;//tmp.JobName;

            if (!Dictionary.ContainsKey(name))
            {
                Logger.Warn($"->任务模块{name}-{job.Version}不存在");
                return;
            }

            var jobKey = Dictionary[name];

            StdSchedulerFactory.GetDefaultScheduler(cancel.Token).Result.DeleteJob(jobKey, cancel.Token);
            Dictionary.Remove(name);
            Logger.Info($"->任务模块{name}-{job.Version}被删除...");
        }