Exemplo n.º 1
0
        private static void RegisterExportCfsClientRecordsJob()
        {
            var jobKey = new JobKey("ExportCfsClientRecordsJob");
            var job    = sched.GetJobDetail(jobKey);

            if (job == null)
            {
                // define the job and tie it to our HelloJob class
                job = JobBuilder.Create <ExportCfsClientRecordsJob>()
                      .WithIdentity(jobKey)
                      .Build();


                var triggerKey = new TriggerKey("ExportCfsClientRecordsJob");

                // Trigger the job to run now, and daily at midnight
                ITrigger trigger = TriggerBuilder.Create()
                                   .WithIdentity(triggerKey)
                                   .StartNow()
                                   .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 0, 0).WithMisfireHandlingInstructionFireAndProceed())
                                   .Build();

                sched.ScheduleJob(job, trigger);
            }
        }
Exemplo n.º 2
0
        public static void Main()
        {
            try
            {
                // Creamos el demonio
                IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

                // Iniciamos el demonio
                scheduler.Start();


                //........................................................//


                // Definimos un trabajo y lo asociamos a la clase MyJobs
                IJobDetail every24hJob = JobBuilder.Create <Job>()
                                         .WithIdentity("generarFactura", "app")
                                         .Build();

                // Lanzamos el job todos los días a las
                ITrigger every24hTrigger = TriggerBuilder.Create()
                                           .WithIdentity("generarFactura", "app")
                                           .StartNow()
                                           .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 0, 1))
                                           .Build();

                // Asociamos el job y el trigger al demonio
                scheduler.ScheduleJob(every24hJob, every24hTrigger);
            }
            catch (SchedulerException se)
            {
                Console.WriteLine(se);
            }
        }
Exemplo n.º 3
0
        private TriggerBuilder AddMonthly(TriggerBuilder triggerBuilder, ScheduleModel scheduler)
        {
            var startTime = scheduler.StarTime;

            return(triggerBuilder.WithSchedule(
                       CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(startTime.Day, startTime.Hour, startTime.Minute)));
        }
Exemplo n.º 4
0
        private void ConfigureScheduler()
        {
            var schedFact = new StdSchedulerFactory();

            sched = schedFact.GetScheduler().Result;
            var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Israel Standard Time");

            var weeklyJob = new JobDetailImpl("WeeklyJob", null, typeof(WeeklyJob));
            var weeklyCronScheduleBuilder = CronScheduleBuilder.WeeklyOnDayAndHourAndMinute(DayOfWeek.Sunday, 0, 0)
                                            .InTimeZone(timeZoneInfo);
            var weeklyTrigger = TriggerBuilder.Create()
                                .StartNow()
                                .WithSchedule(weeklyCronScheduleBuilder)
                                .Build();

            sched.ScheduleJob(weeklyJob, weeklyTrigger);

            var monthlyJob = new JobDetailImpl("MonthlyJob", null, typeof(MonthlyJob));
            var monthlyCronScheduleBuilder = CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 0, 0)
                                             .InTimeZone(timeZoneInfo);
            var monthlyTrigger = TriggerBuilder.Create()
                                 .StartNow()
                                 .WithSchedule(monthlyCronScheduleBuilder)
                                 .Build();

            sched.ScheduleJob(monthlyJob, monthlyTrigger);
            sched.Start();
        }
Exemplo n.º 5
0
        /// <summary>
        /// 每月
        /// </summary>
        public static long AddMonthlySchedule(int dayOfMonth, int hour, int minute, long actorId, string actorAgentType, string handlerType, Param param)
        {
            long id      = newID();
            var  trigger = TriggerBuilder.Create().StartNow().WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(dayOfMonth, hour, minute)).Build();

            scheduler.ScheduleJob(getJobDetail(id, actorId, actorAgentType, handlerType, param), trigger);
            return(id);
        }
Exemplo n.º 6
0
        public void Start()
        {
            // ConfigurationBuilder
            ConfigurationBuilder();

            // Initialize
            Initialize();

            //Init setting
            IsCPLPaymentServiceRunning = true;
            Tasks.Clear();

            Tasks.Add(Task.Run(async() =>
            {
                IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
                await scheduler.Start();

                // Start the job as usual
                var jobData = new JobDataMap
                {
                    ["Resolver"]        = Resolver,
                    ["PaymentFileName"] = PaymentFileName
                };

                //Payment creating job
                IJobDetail creatingJob = JobBuilder.Create <PaymentCreateJob>()
                                         .UsingJobData(jobData)
                                         .WithIdentity("PaymentCreateJob", "QuartzGroup")
                                         .WithDescription("Job to automatically create payment at the beginning of every month")
                                         .Build();

                ITrigger creatingTrigger = TriggerBuilder.Create()
                                           .WithIdentity("PaymentCreateJob", "QuartzGroup")
                                           .WithDescription("Job to automatically create payment at the beginning of every month")
                                           .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(PaymentCreateMonthlyStartTimeInDay, PaymentCreateMonthlyStartTimeInHour, PaymentCreateMonthlyStartTimeInMinute))
                                           .Build();

                await scheduler.ScheduleJob(creatingJob, creatingTrigger);

                //Payment processing job
                IJobDetail processingJob = JobBuilder.Create <PaymentProcessJob>()
                                           .UsingJobData(jobData)
                                           .WithIdentity("PaymentProcessJob", "QuartzGroup")
                                           .WithDescription("Job to automatically process payment at 10th monthly")
                                           .Build();

                ITrigger processingTrigger = TriggerBuilder.Create()
                                             .WithIdentity("PaymentProcessJob", "QuartzGroup")
                                             .WithDescription("Job to automatically process payment at 10th monthly")
                                             .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(PaymentProcessMonthlyStartTimeInDay, PaymentProcessMonthlyStartTimeInHour, PaymentProcessMonthlyStartTimeInMinute))
                                             .Build();

                await scheduler.ScheduleJob(processingJob, processingTrigger);
            }));
        }
Exemplo n.º 7
0
        /// <summary>
        /// Adds a new monthly job to the scheduler
        /// </summary>
        /// <typeparam name="T">Job is generated</typeparam>
        /// <param name="name">Name of the job</param>
        /// <param name="group">Group of jobs</param>
        public async void AddMonthlyJob <T>(string name, string group)
            where T : IJob
        {
            // Create a job
            IJobDetail job = JobBuilder.Create <T>()
                             .WithIdentity(name, group)
                             .Build();

            // Create triggers
            ITrigger jobTrigger = TriggerBuilder.Create()
                                  .WithIdentity(name + "Trigger", group)
                                  .StartNow()                                                               // Start now
                                  .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 12, 0)) // With repetition every month on the first day at 12:00 AM
                                  .Build();

            // Attach job
            await Scheduler.ScheduleJob(job, jobTrigger);
        }
Exemplo n.º 8
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);


            IScheduler sched = new StdSchedulerFactory().GetScheduler();
            //创建一个工作对象
            JobDetailImpl jdBossReport = new JobDetailImpl("jdTest", typeof(TestJob));
            int           day          = int.Parse(ConfigurationManager.AppSettings["day"]);
            int           huor         = int.Parse(ConfigurationManager.AppSettings["hour"]);
            int           mi           = int.Parse(ConfigurationManager.AppSettings["mi"]);
            //创建触发条件
            IMutableTrigger triggerBossReport = CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(day, huor, mi).Build();

            //设置触发条件的键名
            triggerBossReport.Key = new TriggerKey("test");
            //给计划按触发条件执行工作
            sched.ScheduleJob(jdBossReport, triggerBossReport);
            //计划启动
            sched.Start();

            // BundleConfig.RegisterBundles(BundleTable.Bundles);
            ContainerBuilder cb = new ContainerBuilder();

            //把当前程序集中的 Controller 都注册
            cb.RegisterControllers(typeof(MvcApplication).Assembly).PropertiesAutowired();
            //注册实现IUserBLL的实现类
            //  cb.RegisterType<UserBLL>().As<IUserBLL>();
            Assembly ass = Assembly.Load("BLL");

            cb.RegisterAssemblyTypes(ass).AsImplementedInterfaces().PropertiesAutowired().SingleInstance();
            IContainer ioc = cb.Build();

            //注册系统级别的 DependencyResolver,这样当 MVC 框架创建 Controller 等对象的时候都是管 Autofac 要对象。
            DependencyResolver.SetResolver(new AutofacDependencyResolver(ioc));
        }
 static void Main(string[] args)
 {
     log4net.Config.XmlConfigurator.Configure();
     HostFactory.Run(c => c.Service <ContainerService>(s =>
     {
         s.ConstructUsing(name => new ContainerService());
         s.WhenStarted((service, control) => service.Start());
         s.WhenStopped((service, control) => service.Stop());
         s.ScheduleQuartzJob(q =>
                             q.WithJob(() =>
                                       JobBuilder.Create <MonthlyRemoveFileJob>().Build())
                             .AddTrigger(() =>
                                         TriggerBuilder.Create()
                                         //.WithSimpleSchedule(x => x.WithIntervalInSeconds(50000).RepeatForever())
                                         .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 0, 0))
                                         .Build())
                             );
         c.RunAsLocalSystem();
         c.SetDisplayName("RemoveFileWinService");
         c.SetDescription("Remove files Win Service by using Topshelf");
         c.SetServiceName("RemoveFileWinService");
     }));
 }
Exemplo n.º 10
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);
        }
Exemplo n.º 11
0
        //private static IJobDetail charge_card_job = JobBuilder.Create<CardsChargeJob>().StoreDurably()
        //                                                        .WithIdentity("ChargeJob", "group1")
        //                                                        .Build();

        //public static void resCheduleTrigger(string triggerkey, int CardID, int t_hour, int t_minute)
        //{
        //    if (triggerkey != null)
        //    {
        //        ITrigger old_trigger = triggers_set.Where(x => x.Key.Name == triggerkey).FirstOrDefault();
        //        if (old_trigger != null)
        //        {
        //            if (scheduler.CheckExists(old_trigger.Key))
        //            {
        //                ITrigger trigger = old_trigger.GetTriggerBuilder()
        //                     .WithIdentity(triggerkey, "group1").UsingJobData("CardID", CardID)
        //                     .StartNow()
        //                     .WithSimpleSchedule(x => x
        //                         .WithIntervalInMinutes(60)
        //                         .RepeatForever())
        //                     .Build();

        //                scheduler.RescheduleJob(old_trigger.Key, trigger);
        //            }
        //        }
        //        else
        //        {
        //            triggers_set.Add(TriggerBuilder.Create()
        //                                .WithIdentity(triggerkey, "group1").UsingJobData("CardID", CardID)
        //                                    .StartNow()
        //                                        .WithSimpleSchedule(x => x
        //                                        .WithIntervalInMinutes(60)
        //                                        .RepeatForever()).ForJob(charge_card_job)
        //                                    .Build());

        //            ITrigger trigger = triggers_set.Where(x => x.Key.Name == triggerkey).FirstOrDefault();
        //            scheduler.ScheduleJob(trigger);
        //        }
        //    }
        //}

        public static void Start()
        {
            //scheduler.AddJob(charge_card_job, false);


            //List<int> cards;

            //using (DataContext _db = new DataContext())
            //{
            //    cards = _db.Cards.Select(x => x.Id).ToList();
            //    //cards = _db.Cards.Where(c => c.CardStatus != CardStatus.Canceled).ToList();

            //    triggers_set = new Quartz.Collection.HashSet<ITrigger>();
            //    triggers = new ITrigger[cards.Count];

            //    for (int i = 0; i < cards.Count; i++)
            //    {
            //        ITrigger trigger = TriggerBuilder.Create()
            //             .WithIdentity("trigger_" + cards[i].ToString(), "group1").UsingJobData("CardID", cards[i])
            //                .WithSimpleSchedule(x => x
            //                .WithIntervalInMinutes(120)
            //                .RepeatForever().WithMisfireHandlingInstructionIgnoreMisfires()).ForJob(charge_card_job).StartNow()
            //             .Build();

            //        //if(cards[i] == 353403)
            //        //{
            //        //    scheduler.ScheduleJob(trigger);
            //        //}
            //        //else
            //        scheduler.ScheduleJob(trigger);
            //        //triggers[i] = trigger;
            //        //triggers_set.Add(trigger);
            //    }
            //}

            //if(triggers_set.Count > 0)
            //{
            //    foreach(ITrigger trig in triggers_set.ToList())
            //    {
            //        scheduler.ScheduleJob(trig);
            //    }
            //}

            //scheduler.ScheduleJob(charge_card_job, triggers_set, false);

            IJobDetail report_disabling_job = JobBuilder.Create <ReportUserAboutDisablingJob>()
                                              .WithIdentity("ReportDeisablingJob", "group1")
                                              .Build();

            IJobDetail report_on_disable_job = JobBuilder.Create <ReportUserOnDisableJob>()
                                               .WithIdentity("ReportOnDisableJob", "group2")
                                               .Build();

            IJobDetail charge_card_job = JobBuilder.Create <ChargeCardJob>()
                                         .WithIdentity("ChargeJob", "group3")
                                         .Build();

            IJobDetail reset_pause_job = JobBuilder.Create <ResetCardsPauseJob>()
                                         .WithIdentity("ChargeJob", "group3")
                                         .Build();

            IJobDetail disable_card_job = JobBuilder.Create <DisableCardsJob>()
                                          .WithIdentity("DisableJob", "group4")
                                          .Build();

            IJobDetail rent_late_message_job = JobBuilder.Create <ReporOnRentLateJob>()
                                               .WithIdentity("MessageJob", "group5")
                                               .Build();

            IJobDetail invoicejuridical_send_job = JobBuilder.Create <JuridicalInvoce>()
                                                   .WithIdentity("JuridicalInvoce", "group6")
                                                   .Build();

            IJobDetail free_instalation = JobBuilder.Create <ReporFreeInstalation>()
                                          .WithIdentity("ReporFreeInstalation", "group10")
                                          .Build();

            IJobDetail change_orde_damage_cancellation = JobBuilder.Create <ChangeOrderDamageCancellation>()
                                                         .WithIdentity("ChangeOrderDamageCancellation", "group11")
                                                         .Build();

            IJobDetail promo_change_pack = JobBuilder.Create <PromoChangePack_8>()
                                           .WithIdentity("PromoChangePack_8", "group12")
                                           .Build();
            //IJobDetail message_job = JobBuilder.Create<MessageJob>()
            //    .WithIdentity("MessageJob", "group2")
            //    .Build();

            //IJobDetail staffs_emails_job = JobBuilder.Create<StaffsEmailsJob>()
            //    .WithIdentity("StaffsEmails", "group3")
            //    .Build();

            //IJobDetail invoice_send_job = JobBuilder.Create<InvoiceSendJob>()
            //    .WithIdentity("InvoiceSendJob", "group4")
            //    .Build();

            //IJobDetail auto_subscrib_job = JobBuilder.Create<AutoSubscribJob>()
            //    .WithIdentity("AutoSubscrib", "group6")
            //    .Build();

            /*IJobDetail post_charge_job = JobBuilder.Create<PostChargeJob>()
             *  .WithIdentity("PostChargeJob", "group6")
             *  .Build();*/

            IJobDetail report_disabling_share8_job = JobBuilder.Create <ReportUserAboutDisablingShare8Job>()
                                                     .WithIdentity("ReportDeisablingShare8Job", "group7")
                                                     .Build();

            IJobDetail report_disable_share8_job = JobBuilder.Create <ReportUserOnDisableShare8Job>()
                                                   .WithIdentity("ReportDeisableShare8Job", "group8")
                                                   .Build();

            //IJobDetail rent_sms_job = JobBuilder.Create<RentSMSJob>()
            //    .WithIdentity("RentSMSJob", "group9")
            //    .Build();

            int charge_min = 0, charge_hour = 0;
            int message_min = 0, message_hour = 0;

            using (DataContext _db = new DataContext())
            {
                var      _params    = _db.Params.Where(p => p.Name == "CardCharge" || p.Name == "MessageTime").ToList();
                string[] charge_val = _params.Find(c => c.Name == "CardCharge").Value.Split(':');
                charge_hour = int.Parse(charge_val[0]);
                charge_min  = int.Parse(charge_val[1]);

                string[] message_val = _params.Find(c => c.Name == "MessageTime").Value.Split(':');
                message_hour = int.Parse(message_val[0]);
                message_min  = int.Parse(message_val[1]);
            }


            if (scheduler.CheckExists(change_orde_damage_cancellation.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("change"), TriggerBuilder.Create().WithIdentity("change")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, 10)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                        .WithIntervalInMinutes(5)
                //                        .RepeatForever()).StartNow()
                //                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(change_orde_damage_cancellation, TriggerBuilder.Create().WithIdentity("change")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, 10)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //.WithIntervalInMinutes(5)
                //.RepeatForever()).StartNow()
                //.Build());
            }

            if (scheduler.CheckExists(free_instalation.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_free"), TriggerBuilder.Create().WithIdentity("report_free")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                        .WithIntervalInMinutes(5)
                //                        .RepeatForever()).StartNow()
                //                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(free_instalation, TriggerBuilder.Create().WithIdentity("report_free")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //.WithIntervalInMinutes(5)
                //.RepeatForever()).StartNow()
                //.Build());
            }



            if (scheduler.CheckExists(report_disabling_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_disabling_trigger"), TriggerBuilder.Create().WithIdentity("report_disabling_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                    .WithIntervalInHours(1)
                //                    .RepeatForever())
                //                    .Build());
            }
            else
            {
                scheduler.ScheduleJob(report_disabling_job, TriggerBuilder.Create().WithIdentity("report_disabling_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //                    .WithIntervalInHours(1)
                //                    .RepeatForever())
                //                    .Build());
            }
            if (scheduler.CheckExists(promo_change_pack.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("promo_change_pack_8"), TriggerBuilder.Create().WithIdentity("promo_change_pack_8")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(promo_change_pack, TriggerBuilder.Create().WithIdentity("promo_change_pack_8")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());
            }

            if (scheduler.CheckExists(report_disable_share8_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_disable_share8_trigger"), TriggerBuilder.Create().WithIdentity("report_disable_share8_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(report_disable_share8_job, TriggerBuilder.Create().WithIdentity("report_disable_share8_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());
            }


            if (scheduler.CheckExists(report_disabling_share8_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_disabling_share8_trigger"), TriggerBuilder.Create().WithIdentity("report_disabling_share8_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                    .WithIntervalInHours(1)
                //                    .RepeatForever())
                //                    .Build());
            }
            else
            {
                scheduler.ScheduleJob(report_disabling_share8_job, TriggerBuilder.Create().WithIdentity("report_disabling_share8_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //                    .WithIntervalInHours(1)
                //                    .RepeatForever())
                //                    .Build());
            }


            if (scheduler.CheckExists(report_on_disable_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_on_disable_trigger"), TriggerBuilder.Create().WithIdentity("report_on_disable_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(report_on_disable_job, TriggerBuilder.Create().WithIdentity("report_on_disable_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());
            }

            /////// rent sms
            //if (scheduler.CheckExists(rent_sms_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("rent_trigger"), TriggerBuilder.Create().WithIdentity("rent_trigger")
            //        .WithDailyTimeIntervalSchedule
            //          (s =>
            //             s.WithIntervalInHours(24)
            //            .OnEveryDay()
            //            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
            //          )
            //        .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(rent_sms_job, TriggerBuilder.Create().WithIdentity("rent_trigger")
            //            .WithDailyTimeIntervalSchedule
            //              (s =>
            //                 s.WithIntervalInHours(24)
            //                .OnEveryDay()
            //                .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
            //              )
            //            .Build());
            //}
            //if (scheduler.CheckExists(report_on_disable_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("report_on_disable_trigger"), TriggerBuilder.Create().WithIdentity("report_on_disable_trigger")
            //        .WithSimpleSchedule(x => x
            //                            .WithIntervalInSeconds(75)
            //                            .RepeatForever())
            //                            .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(report_on_disable_job, TriggerBuilder.Create().WithIdentity("report_on_disable_trigger")
            //            .WithSimpleSchedule(x => x
            //                                .WithIntervalInSeconds(75)
            //                                .RepeatForever())
            //                                .Build());
            //}

            if (scheduler.CheckExists(charge_card_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("charge_trigger"), TriggerBuilder.Create().WithIdentity("charge_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, charge_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                        .WithIntervalInMinutes(5)
                //                        .RepeatForever()).StartNow()
                //                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(charge_card_job, TriggerBuilder.Create().WithIdentity("charge_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, charge_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //.WithIntervalInMinutes(5)
                //.RepeatForever()).StartNow()
                //.Build());
            }

            if (scheduler.CheckExists(reset_pause_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("pause_reset_trigger"), TriggerBuilder.Create().WithIdentity("pause_reset_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, charge_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(reset_pause_job, TriggerBuilder.Create().WithIdentity("pause_reset_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(charge_hour, charge_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());
            }

            if (scheduler.CheckExists(rent_late_message_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("report_on_rent_late_trigger"), TriggerBuilder.Create().WithIdentity("report_on_rent_late_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                        .WithIntervalInMinutes(5)
                //                        .RepeatForever()).StartNow()
                //                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(rent_late_message_job, TriggerBuilder.Create().WithIdentity("report_on_rent_late_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
                                          )
                                      .Build());

                //.WithSimpleSchedule(x => x
                //.WithIntervalInMinutes(5)
                //.RepeatForever()).StartNow()
                //.Build());
            }

            if (scheduler.CheckExists(disable_card_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("disable_trigger"), TriggerBuilder.Create().WithIdentity("disable_trigger")
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 1)) //saati da cuti parametrebidan
                                            )
                                        .Build());


                //.WithSimpleSchedule(x => x
                //                        .WithIntervalInMinutes(5)
                //                        .RepeatForever()).StartNow()
                //                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(disable_card_job, TriggerBuilder.Create().WithIdentity("disable_trigger")
                                      .WithDailyTimeIntervalSchedule
                                          (s =>
                                          s.WithIntervalInHours(24)
                                          .OnEveryDay()
                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 1)) //saati da cuti parametrebidan
                                          )
                                      .Build());


                //.WithSimpleSchedule(x => x
                //.WithIntervalInMinutes(5)
                //.RepeatForever()).StartNow()
                //.Build());
            }

            //if (scheduler.CheckExists(message_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("message_trigger"), TriggerBuilder.Create().WithIdentity("message_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(message_job, TriggerBuilder.Create().WithIdentity("message_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(message_hour, message_min)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}

            //if (scheduler.CheckExists(staffs_emails_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("staffs_email_trigger"), TriggerBuilder.Create().WithIdentity("staffs_email_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(10, 0)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(staffs_emails_job, TriggerBuilder.Create().WithIdentity("staffs_email_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(10, 0)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}


            //if (scheduler.CheckExists(auto_subscrib_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("auto_subscrib_trigger"), TriggerBuilder.Create().WithIdentity("auto_subscrib_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 5)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //else
            //    scheduler.ScheduleJob(auto_subscrib_job, TriggerBuilder.Create().WithIdentity("auto_subscrib_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 5)) //saati da cuti parametrebidan
            //      )
            //    .Build());

            //if (scheduler.CheckExists(invoice_send_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("invoice_send_trigger"), TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 0)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(invoice_send_job, TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 0)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}


            // invoisi
            if (scheduler.CheckExists(invoicejuridical_send_job.Key))
            {
                scheduler.RescheduleJob(new TriggerKey("invoice_send_trigger"), TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
                                        .WithIdentity("Run Infinitely every 2nd day of the month", "Monthly_Day_2")
                                        //.StartNow()
                                        .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute((DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)), 10, 01))
                                        .Build());
            }
            else
            {
                scheduler.ScheduleJob(invoicejuridical_send_job, TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
                                      .WithIdentity("Run Infinitely every 2nd day of the month", "Monthly_Day_2")
                                      //.StartNow()
                                      .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute((DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)), 10, 01))
                                      .Build());
            }
            //if (scheduler.CheckExists(invoicejuridical_send_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("invoice_send_trigger"), TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //    .WithIdentity("Run Infinitely every 2nd day of the month", "Monthly_Day_2")
            //    .StartNow()
            //    .WithSimpleSchedule(x => x
            //        .WithIntervalInMinutes(4)
            //        .RepeatForever())
            //    .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(invoicejuridical_send_job, TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //     .WithIdentity("Run Infinitely every 2nd day of the month", "Monthly_Day_2")
            //    .StartNow()
            //    .WithSimpleSchedule(x => x
            //        .WithIntervalInMinutes(4)
            //        .RepeatForever())
            //    .Build());
            //}
            //if (scheduler.CheckExists(invoicejuridical_send_job.Key))
            //{
            //    scheduler.RescheduleJob(new TriggerKey("invoice_send_trigger"), TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInMinutes(3)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 45)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //else
            //{
            //    scheduler.ScheduleJob(invoicejuridical_send_job, TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInMinutes(59)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 45)) //saati da cuti parametrebidan
            //      )
            //    .Build());
            //}
            //         scheduler.ScheduleJob(invoicejuridical_send_job, TriggerBuilder.Create().WithIdentity("invoice_send_trigger")
            //.WithDailyTimeIntervalSchedule
            //  (s =>
            //     s.WithIntervalInMinutes(30)
            //    .OnEveryDay()
            //    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(21, 31)) //saati da cuti parametrebidan
            //  )
            //.Build());
            //     }

            /*if (scheduler.CheckExists(post_charge_job.Key))
             * {
             *  scheduler.RescheduleJob(new TriggerKey("post_charge_trigger"), TriggerBuilder.Create().WithIdentity("post_charge_trigger")
             *  .WithDailyTimeIntervalSchedule
             *    (s =>
             *       s.WithIntervalInHours(24)
             *      .OnEveryDay()
             *      .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 15)) //saati da cuti parametrebidan
             *    )
             *  .Build());
             * }
             * else
             * {
             *  scheduler.ScheduleJob(post_charge_job, TriggerBuilder.Create().WithIdentity("post_charge_trigger")
             *  .WithDailyTimeIntervalSchedule
             *    (s =>
             *       s.WithIntervalInHours(24)
             *      .OnEveryDay()
             *      .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(0, 15)) //saati da cuti parametrebidan
             *    )
             *  .Build());
             * }*/

            scheduler.Start();
        }
Exemplo n.º 12
0
 /// <summary>
 /// 每月的某一时间
 /// </summary>
 /// <param name="dayOfMonth"></param>
 /// <param name="hour"></param>
 /// <param name="minute"></param>
 /// <returns></returns>
 protected ITrigger TriggerMonthly(int dayOfMonth, int hour, int minute) =>
 BuildTrigger(t => t.WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(dayOfMonth, hour, minute)).Build());
Exemplo n.º 13
0
 public void Configure(IServiceCollectionQuartzConfigurator config)
 {
     config.ScheduleJob <ProcessMonthlyDonationsTask>(x => x
                                                      .StartNow()
                                                      .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 12, 0)));
 }
        public void RunJob()
        {
            try
            {
                ISchedulerFactory schedFact = new StdSchedulerFactory();
                IScheduler        sched     = schedFact.GetScheduler();
                if (!sched.IsStarted)
                {
                    sched.Start();
                }


                IJobDetail jobMonthly = JobBuilder.Create <MonthlyScheduler>().WithIdentity("MonthlyScheduler", null).Build();
                //ISimpleTrigger triggerMonthly = (ISimpleTrigger)TriggerBuilder.Create().WithIdentity("MonthlyScheduler").StartAt(DateTime.Now.AddMonths(2)).WithSimpleSchedule(x => x.WithIntervalInSeconds(100).RepeatForever()).Build();
                ISimpleTrigger triggerMonthly = (ISimpleTrigger)TriggerBuilder.Create().WithIdentity("MonthlyScheduler").WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(1, 1, 0)).Build();
                sched.ScheduleJob(jobMonthly, triggerMonthly);


                IJobDetail     jobDaily     = JobBuilder.Create <DailyScheduler>().WithIdentity("DailyScheduler", null).Build();
                ISimpleTrigger triggerDaily = (ISimpleTrigger)TriggerBuilder.Create().WithIdentity("DailyScheduler").WithCronSchedule("0 0 11 1,2,3,4,5,8,9,10,11,12,15,16,17,18,19,22,23,24,25,26,27 * ?").Build();
                sched.ScheduleJob(jobDaily, triggerDaily);
            }
            catch (Exception ex)
            {
            }
        }
Exemplo n.º 15
0
 public static TriggerBuilder TriggerMonthly_(this TriggerBuilder builder, int dayOfMonth, int hour, int minute, string name, string group = null)
 {
     builder = builder.WithIdentity_(name, group).WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(dayOfMonth, hour, minute));
     return(builder);
 }
Exemplo n.º 16
0
        private TriggerBuilder GetTriggerBuilder(JobDetail jd, TriggerDetail td)
        {
            var trigger = TriggerBuilder.Create();

            trigger.WithIdentity(td.TriggerKey, jd.Group);
            trigger.ForJob(jd.JobKey);
            trigger.WithPriority(td.Priority);
            trigger.StartAt(td.StartTime);
            if (td.EndTime != null && !td.EndTime.Equals(DateTime.MinValue))
            {
                trigger.EndAt(td.EndTime);
            }

            switch (td.ScheduleTypeValue.ToLower())
            {
            case "seconds":
                if (td.RepeatInterval > 0)
                {
                    if (td.RepeatCount > 0)
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInSeconds(td.RepeatInterval)
                                                             .WithRepeatCount(td.RepeatCount)
                                                             );
                    }
                    else
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInSeconds(td.RepeatInterval)
                                                             .RepeatForever()
                                                             );
                    }
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this);
                }


                Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this);

                break;

            case "minutes":
                if (td.RepeatInterval > 0)
                {
                    if (td.RepeatCount > 0)
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInMinutes(td.RepeatInterval)
                                                             .WithRepeatCount(td.RepeatCount)
                                                             );
                    }
                    else
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInMinutes(td.RepeatInterval)
                                                             .RepeatForever()
                                                             );
                    }
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this);
                }


                Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this);

                break;

            case "hours":
                if (td.RepeatInterval > 0)
                {
                    if (td.RepeatCount > 0)
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInHours(td.RepeatInterval)
                                                             .WithRepeatCount(td.RepeatCount)
                                                             );
                    }
                    else
                    {
                        trigger = trigger.WithSimpleSchedule(x => x
                                                             .WithIntervalInHours(td.RepeatInterval)
                                                             .RepeatForever()
                                                             );
                    }
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but no Repeat Interval mentioned. Please configure the Repeat Interval correctly !!", jd.JobKey, td.ScheduleType), this);
                }


                Diagnostics.Log.Info(String.Format("ScheduleType {0} and Schedule : {1})", td.ScheduleType, trigger.ToString()), this);

                break;

            case "daily":
                trigger.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(td.StartTime.Hour, td.StartTime.Minute));
                break;

            case "weekly":
                //Convert Sitecore DaysOfWeeks property to System.DaysOfWeek which is understood by Quartz.net
                if (td.DaysOfWeeks != null && td.DaysOfWeeks.Count > 0)
                {
                    System.DayOfWeek[] dayOfWeeks = new System.DayOfWeek[td.DaysOfWeeks.Count];
                    for (int i = 0; i < td.DaysOfWeeks.Count; i++)
                    {
                        dayOfWeeks[i] = (System.DayOfWeek)Enum.Parse(typeof(System.DayOfWeek), td.DaysOfWeeks[i].DayOfWeekValue.ToString());
                    }

                    trigger.WithSchedule(CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(td.StartTime.Hour, td.StartTime.Minute, dayOfWeeks));
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Day of Weeks\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this);
                }
                break;

            case "monthly":
                if (td.DayOfMonth > 0)
                {
                    trigger.WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(td.DayOfMonth, td.StartTime.Hour, td.StartTime.Minute));
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Day of Month\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this);
                }

                break;

            case "custom":
                if (!String.IsNullOrEmpty(td.CronExpression))
                {
                    trigger.WithSchedule(CronScheduleBuilder.CronSchedule(new CronExpression(td.CronExpression)));
                }
                else
                {
                    Log.Warn(String.Format("Job {0} was configured with {1} schedule but \"Cron Expression\" was not set correctly. Please configure the trigger correctly !!", jd.JobKey, td.ScheduleType), this);
                }
                break;
            }


            return(trigger);
        }
Exemplo n.º 17
0
        protected override void OnStart(string[] args)
        {
            try
            {
                // construct a scheduler factory
                ISchedulerFactory schedFact = new StdSchedulerFactory();

                // get a scheduler
                IScheduler sched = schedFact.GetScheduler();
                sched.Start();

                // define the job and tie it to our HelloJob class
                IJobDetail job = JobBuilder.Create <HelloJob>()
                                 .WithIdentity("myJob", "group1")
                                 .Build();

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

                ITrigger trigger;


                //holiday calendar
                //HolidayCalendar cal = new HolidayCalendar();
                //cal.AddExcludedDate(DateTime.Now.AddDays(1));

                //sched.AddCalendar("myHolidays", cal, false,false);

                if (CSMV3Function.GetIsDaily())
                {
                    logger.Debug("Start Daily");
                    trigger = TriggerBuilder.Create()
                              .WithIdentity("myTrigger")
                              .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(CSMV3Function.GetHour(),
                                                                                     CSMV3Function.GetMinutes())) // execute job daily at
                                                                                                                  //.ModifiedByCalendar("myHolidays") // but not on holidays
                              .Build();
                }
                else if (CSMV3Function.GetIsWeekly())
                {
                    logger.Debug("Start Weekly");
                    logger.Debug("Day of week is : " + CSMV3Function.GetDayofWeek());
                    trigger = TriggerBuilder.Create()
                              .WithIdentity("myTrigger")
                              .WithSchedule(CronScheduleBuilder.WeeklyOnDayAndHourAndMinute(CSMV3Function.GetDayofWeek(),
                                                                                            CSMV3Function.GetHour(),
                                                                                            CSMV3Function.GetMinutes())) // execute job daily at
                                                                                                                         //.ModifiedByCalendar("myHolidays") // but not on holidays
                              .Build();
                }
                else if (CSMV3Function.GetIsMonthly())
                {
                    logger.Debug("Start Monthly");
                    logger.Debug("Day of month is : " + CSMV3Function.GetDayofMonth());
                    trigger = TriggerBuilder.Create()
                              .WithIdentity("myTrigger")
                              .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(CSMV3Function.GetDayofMonth(),
                                                                                             CSMV3Function.GetHour(),
                                                                                             CSMV3Function.GetMinutes())) // execute job daily at
                                                                                                                          //.ModifiedByCalendar("myHolidays") // but not on holidays
                              .Build();
                }
                else
                {
                    trigger = TriggerBuilder.Create()
                              .WithIdentity("myTrigger", "group1")
                              .WithSimpleSchedule(x => x
                                                  .WithIntervalInSeconds(CSMV3Function.GetIntervalinSeconds())
                                                  .RepeatForever())
                              .EndAt(DateBuilder.DateOf(22, 0, 0))
                              .Build();
                }



                sched.ScheduleJob(job, trigger);
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message);
                logger.Error(ex.InnerException);
                throw;
            }
        }
Exemplo n.º 18
0
        public static void Start()
        {
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();

            scheduler.Start();

            //int Hr = Convert.ToInt32(ConfigurationManager.AppSettings["ScheduleHour"]);
            //int Mn = Convert.ToInt32(ConfigurationManager.AppSettings["ScheduleMinute"]);

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

            //ITrigger trigger = TriggerBuilder.Create()
            //    .WithDailyTimeIntervalSchedule
            //      (s =>
            //         s.WithIntervalInHours(24)
            //        .OnEveryDay()
            //        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(Hr, Mn))
            //      )
            //    .Build();


            //For Weekly Reports Create New Job & Trigger

            int WeeklyDay       = Convert.ToInt32(ConfigurationManager.AppSettings["WeeklyScheduleDay"]);
            int WeeklyTimeHour  = Convert.ToInt32(ConfigurationManager.AppSettings["WeeklyScheduleTimeHour"]);
            int WeeklyTimeMinut = Convert.ToInt32(ConfigurationManager.AppSettings["WeeklyScheduleTimeMinut"]);

            IJobDetail WeeklyJob = JobBuilder.Create <WeeklyEmailJob>().Build();

            ITrigger Weeklytrigger = TriggerBuilder.Create()
                                     .WithSchedule(CronScheduleBuilder
                                                   .WeeklyOnDayAndHourAndMinute((DayOfWeek)WeeklyDay, WeeklyTimeHour, WeeklyTimeMinut)
                                                   .InTimeZone(TimeZoneInfo.Local))
                                     .Build();


            //For Monthly Reports Create New Job & Trigger

            int        MonthlyTime = Convert.ToInt32(ConfigurationManager.AppSettings["MonthlyScheduleTime"]);
            IJobDetail MonthlyJob  = JobBuilder.Create <MonthlyEmailJob>().Build();

            ITrigger Monthlytrigger = TriggerBuilder.Create()
                                      .WithSchedule(CronScheduleBuilder
                                                    .MonthlyOnDayAndHourAndMinute(DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month), MonthlyTime, 15)
                                                    .InTimeZone(TimeZoneInfo.Local))
                                      .Build();



            //For Daily Notification Create New Job & Trigger

            int NotificationHr = Convert.ToInt32(ConfigurationManager.AppSettings["DailyNotificationTime"]);

            IJobDetail DailyNotificationjob = JobBuilder.Create <DailyNotificationJob>().Build();

            ITrigger DailyNotificationtrigger = TriggerBuilder.Create()
                                                .WithDailyTimeIntervalSchedule
                                                    (s =>
                                                    s.WithIntervalInHours(24)
                                                    .OnEveryDay()
                                                    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(NotificationHr, 00))
                                                    )
                                                .Build();



            //For Daily Mail Create New Job & Trigger
            int DailyHours  = Convert.ToInt32(ConfigurationManager.AppSettings["DailyScheduleHours"]);
            int DailyMinuts = Convert.ToInt32(ConfigurationManager.AppSettings["DailyScheduleMinut"]);

            IJobDetail Dailyjob = JobBuilder.Create <DailyEmailJob>().Build();

            ITrigger Dailytrigger = TriggerBuilder.Create()
                                    .WithDailyTimeIntervalSchedule
                                        (s =>
                                        s.WithIntervalInHours(24)
                                        .OnEveryDay()
                                        .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(DailyHours, DailyMinuts))
                                        )
                                    .Build();


            //For Daily Noon Mail Create New Job & Trigger
            int DailyNoonHours  = Convert.ToInt32(ConfigurationManager.AppSettings["DailyNoonHours"]);
            int DailyNoonMinuts = Convert.ToInt32(ConfigurationManager.AppSettings["DailyNoonMinut"]);

            IJobDetail DailyNoonjob = JobBuilder.Create <DailyNoonEmailJob>().Build();

            ITrigger DailyNoontrigger = TriggerBuilder.Create()
                                        .WithDailyTimeIntervalSchedule
                                            (s =>
                                            s.WithIntervalInHours(24)
                                            .OnEveryDay()
                                            .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(DailyNoonHours, DailyNoonMinuts))
                                            )
                                        .Build();



            //For Daily Evening Mail Create New Job & Trigger
            int DailyEveningHours  = Convert.ToInt32(ConfigurationManager.AppSettings["DailyEveningHours"]);
            int DailyEveningMinuts = Convert.ToInt32(ConfigurationManager.AppSettings["DailyEveningMinut"]);

            IJobDetail DailyEveningjob = JobBuilder.Create <DailyEveningEmailJob>().Build();

            ITrigger DailyEveningtrigger = TriggerBuilder.Create()
                                           .WithDailyTimeIntervalSchedule
                                               (s =>
                                               s.WithIntervalInHours(24)
                                               .OnEveryDay()
                                               .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(DailyEveningHours, DailyEveningMinuts))
                                               )
                                           .Build();


            //For Daily Night Mail Create New Job & Trigger
            int DailyNightHours  = Convert.ToInt32(ConfigurationManager.AppSettings["DailyNightHours"]);
            int DailyNightMinuts = Convert.ToInt32(ConfigurationManager.AppSettings["DailyNightMinut"]);

            IJobDetail DailyNightjob = JobBuilder.Create <DailyNightEmailJob>().Build();

            ITrigger DailyNighttrigger = TriggerBuilder.Create()
                                         .WithDailyTimeIntervalSchedule
                                             (s =>
                                             s.WithIntervalInHours(24)
                                             .OnEveryDay()
                                             .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(DailyNightHours, DailyNightMinuts))
                                             )
                                         .Build();


            //For Daily Night Data Execution New Job & Trigger
            IJobDetail DailyNightDataExecutionjob = JobBuilder.Create <DailyNightDataExecutionJob>().Build();

            ITrigger DailyNightDataExecutiontrigger = TriggerBuilder.Create()
                                                      .WithDailyTimeIntervalSchedule
                                                          (s =>
                                                          s.WithIntervalInHours(24)
                                                          .OnEveryDay()
                                                          .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(DailyNightHours, DailyNightMinuts))
                                                          )
                                                      .Build();



            //scheduler.ScheduleJob(job, trigger);
            scheduler.ScheduleJob(WeeklyJob, Weeklytrigger);
            scheduler.ScheduleJob(MonthlyJob, Monthlytrigger);
            scheduler.ScheduleJob(DailyNotificationjob, DailyNotificationtrigger);
            scheduler.ScheduleJob(Dailyjob, Dailytrigger);
            scheduler.ScheduleJob(DailyNoonjob, DailyNoontrigger);
            scheduler.ScheduleJob(DailyEveningjob, DailyEveningtrigger);
            scheduler.ScheduleJob(DailyNightjob, DailyNighttrigger);
            scheduler.ScheduleJob(DailyNightDataExecutionjob, DailyNightDataExecutiontrigger);
        }