예제 #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(Request["ScheduledTaskId"]))
        {
            scheduledTaskId = Convert.ToInt32(Request["ScheduledTaskId"]);
        }

        //txtLastRunStatus.Enabled = false;

        if (!IsPostBack)
        {
            if (scheduledTaskId > 0)
            {
                schedulerManager = new SchedulerManager(this);
                scheduledTask    = schedulerManager.GetScheduleTask(scheduledTaskId);

                txtName.Text          = scheduledTask.Name;
                ucPeriodDate.DateTime = scheduledTask.StartTime;
                ucCurrFieldTxtPeriod.CurrencyValue = scheduledTask.Period;
                chkEnabled.Checked     = scheduledTask.Enabled;
                txtTypeFullName.Text   = scheduledTask.TypeFullName;
                txtLastRunStatus.Value = scheduledTask.LastRunStatus;
            }
        }
    }
예제 #2
0
        public void CommitExportJob(ExportJobLite job, string scheduleValues, string scheduleFequency, bool repeating, bool disabled)
        {
            try
            {
                var j = SchedulerManager.GetJobById(job.Id);
                if (j == null)
                {
                    var ej = job.ToInFuseExportJob(null);
                    SchedulerManager.AddJob(JobTypeEnum.InFuseExportJob, JsonConvert.SerializeObject(ej), scheduleValues, scheduleFequency, repeating, disabled);
                    //SchedulerManager.AddJob(JobTypeEnum.ExportJob, JsonConvert.SerializeObject(job.ToExportJob(null)), scheduleValues, scheduleFequency, repeating, disabled);
                }
                else
                {
                    var ej = job.ToInFuseExportJob(job.Id);
                    SchedulerManager.AddJob(JobTypeEnum.InFuseExportJob, JsonConvert.SerializeObject(ej), scheduleValues, scheduleFequency, repeating, disabled);
                }
            }
            catch (Exception e)
            {
                Logger.Info($"Errors saving Export Job {e.Message} - {e.StackTrace}");
                if (e.InnerException != null)
                {
                    Logger.Info($"Errors saving Export Job INNER exception {e.InnerException.Message} - {e.InnerException.StackTrace}");
                }

                throw;
            }
        }
예제 #3
0
 public UrlFinderPipeline(UrlFinderOptons options) : base(options)
 {
     if (Options.Scheduler == null)
     {
         Options.Scheduler = SchedulerManager.GetSiteScheduler(nameof(UrlFinderPipeline));
     }
 }
예제 #4
0
        public static void Init()
        {
            Log.Info("-----------------Begin Init()-----------------");

            AppDomain.CurrentDomain.UnhandledException += (e, d) => Log.Error($"{(d.ExceptionObject as Exception).Message} {Environment.NewLine} {(d.ExceptionObject as Exception).StackTrace}", "UnhandledException");
            if (Current != null)
            {
                Current.DispatcherUnhandledException += (e, d) => Log.Error($"{d?.Exception?.Message} {Environment.NewLine} {d?.Exception?.StackTrace}", "UnhandledException");
            }

            Log.Info("Program version:" + ProgramUpdater.CurrentProgramVersion.ToString());

            Container.BuildDefault();

            CheckPlugin();

            DownloadManager.Init();

            SchedulerManager.Init();

            TagManager.InitTagManager();

            ImageResourceManager.InitImageResourceManager();

            Log.Info("-----------------End Init()-----------------");
        }
    protected void btnSave_Click(object sender, EventArgs e)
    {
        var original_scheduledTask = new InfoControl.Web.ScheduledTasks.ScheduledTask();

        schedulerManager = new SchedulerManager(this);
        scheduledTask = new InfoControl.Web.ScheduledTasks.ScheduledTask();

        if (scheduledTaskId > 0)
        {
            original_scheduledTask = schedulerManager.GetScheduleTask(scheduledTaskId);
            scheduledTask = original_scheduledTask.Duplicate();
        }

        scheduledTask.Name = txtName.Text;
        scheduledTask.Period = ucCurrFieldTxtPeriod.IntValue;
        scheduledTask.Enabled = chkEnabled.Checked;
        scheduledTask.TypeFullName = txtTypeFullName.Text;

        if (ucPeriodDate.DateTime != null)
            scheduledTask.StartTime = Convert.ToDateTime(ucPeriodDate.DateTime);
        
        schedulerManager.SaveScheduleTask(scheduledTask);

        Server.Transfer("ScheduleTasks.aspx");
    }
예제 #6
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        var original_scheduledTask = new InfoControl.Web.ScheduledTasks.ScheduledTask();

        schedulerManager = new SchedulerManager(this);
        scheduledTask    = new InfoControl.Web.ScheduledTasks.ScheduledTask();

        if (scheduledTaskId > 0)
        {
            original_scheduledTask = schedulerManager.GetScheduleTask(scheduledTaskId);
            scheduledTask          = original_scheduledTask.Duplicate();
        }

        scheduledTask.Name         = txtName.Text;
        scheduledTask.Period       = ucCurrFieldTxtPeriod.IntValue;
        scheduledTask.Enabled      = chkEnabled.Checked;
        scheduledTask.TypeFullName = txtTypeFullName.Text;

        if (ucPeriodDate.DateTime != null)
        {
            scheduledTask.StartTime = Convert.ToDateTime(ucPeriodDate.DateTime);
        }

        schedulerManager.SaveScheduleTask(scheduledTask);

        Server.Transfer("ScheduleTasks.aspx");
    }
예제 #7
0
        private void BindUserPanel()
        {
            DateTime fromDate = SchedulerManager.GetScheduleFromDate(WebScheduleInfo1);
            DateTime toDate   = SchedulerManager.GetScheduleEndDate(WebDayView1);

            // bind user names to schedule
            bindResources();


            bindTasks(fromDate, toDate);

            List <LeadTask> appointments = null;

            // active resouce
            int userID = Convert.ToInt32(ActiveResourceKey);

            // get taks and show in scheduler as appointment
            Expression <Func <CRM.Data.Entities.Task, bool> > predicate = PredicateBuilder.True <CRM.Data.Entities.Task>();

            // load events only
            predicate = predicate.And(LeadTask => LeadTask.TaskType == 2);

            predicate    = predicate.And(LeadTask => LeadTask.start_date >= fromDate && LeadTask.end_date <= toDate);
            predicate    = predicate.And(LeadTask => LeadTask.owner_id == userID);
            appointments = TasksManager.GetLeadTask(predicate, fromDate, toDate);

            SchedulerManager.BindAppointment(WebScheduleInfo1, appointments);
        }
예제 #8
0
 private void btClean_Click()
 {
     try{
         var activesheet = (Excel.Worksheet)_excelapp.ActiveSheet;
         if (!_parser.checkTablePresent(activesheet))
         {
             return;
         }
         using (var lForm = new FrmDelete(_excelapp.Hwnd)) {
             lForm.Reports            = _parser.GetReportsList(activesheet.ListObjects[1]);
             lForm.AssociatedInstance = _settings.GetWorksheetParam("DelInstance", "SPECIFIED");
             if (lForm.ShowDialog() != DialogResult.OK)
             {
                 return;
             }
             var reports = _parser.ParseListObjectToReports(activesheet.ListObjects[1], true);
             _settings.SetWorksheetParam("DelInstance", lForm.AssociatedInstance);
             var scheduler = new SchedulerManager(_session);
             var runner    = new FrmRunner(_session.Logger, scheduler.Cancel);
             var exitcode  = runner.Execute(() =>
                                            scheduler.DeleteReportsInstance(ref reports, lForm.AssociatedInstance)
                                            );
             if (exitcode == ExitCode.FAILED || exitcode == ExitCode.CANCELED)
             {
                 return;
             }
             _parser.UpdateListObjectStatus(activesheet.ListObjects[1], reports);
         }
     } catch (Exception ex) { new BusinessObjectsUtils.FrmException(_excelapp.Hwnd, ex).ShowDialog(); }
 }
예제 #9
0
        protected override void OnStart(string[] args)
        {
            try
            {
                //0 0 12 * * ?	 每天12点触发
                //0 15 10 ? * *	 每天10点15分触发
                //0 15 10 * * ?	 每天10点15分触发
                //0 15 10 * * ? *	 每天10点15分触发
                //0 15 10 * * ? 2005	 2005年每天10点15分触发
                //0 * 14 * * ?	 每天下午的 2点到2点59分每分触发
                //0 0/5 14 * * ?	 每天下午的 2点到2点59分(整点开始,每隔5分触发)
                //0 0/5 14,18 * * ?	 每天下午的 2点到2点59分(整点开始,每隔5分触发)
                //每天下午的 18点到18点59分(整点开始,每隔5分触发)
                //0 0-5 14 * * ?	 每天下午的 2点到2点05分每分触发
                //0 10,44 14 ? 3 WED	 3月分每周三下午的 2点10分和2点44分触发
                //0 15 10 ? * MON-FRI	 从周一到周五每天上午的10点15分触发
                //0 15 10 15 * ?	 每月15号上午10点15分触发
                //0 15 10 L * ?	 每月最后一天的10点15分触发
                //0 15 10 ? * 6L	 每月最后一周的星期五的10点15分触发
                //0 15 10 ? * 6L 2002-2005	 从2002年到2005年每月最后一周的星期五的10点15分触发
                //0 15 10 ? * 6#3	 每月的第三周的星期五开始触发
                //0 0 12 1/5 * ?	 每月的第一个中午开始每隔5天触发一次
                //0 11 11 11 11 ?	 每年的11月11号 11点11分触发(光棍节)

                //发邮件工作任务
                JobDetail m_TimingMailJobDetail1 = new JobDetail("打印测试文件", Guid.NewGuid().ToString("N"), typeof(RegularMailJob.RegularMail_T2));
                JobDetail m_TimingMailJobDetail2 = new JobDetail("打印测试文件", Guid.NewGuid().ToString("N"), typeof(RegularMailJob.RegularMail_T2));
                JobDetail m_TimingMailJobDetail3 = new JobDetail("打印测试文件", Guid.NewGuid().ToString("N"), typeof(RegularMailJob.RegularMail_T2));
                //Trigger m_TimingMailTrigger = new SimpleTrigger(Guid.NewGuid().ToString("N"), Guid.NewGuid().ToString("N"), m_TimingMailJobDetail.Name, m_TimingMailJobDetail.Group, DateTime.UtcNow, null, 0, TimeSpan.FromDays(7));

                //CronTrigger trigger = new CronTrigger("打印", "group1", "0/30 * * * * ?");


                //从周一到周五每天上午的10点15分触发
                CronTrigger trigger1 = new CronTrigger("打印1", "group1", "0 20 15 ? * MON-FRI");

                CronTrigger trigger2 = new CronTrigger("打印2", "group2", "0 25 15 ? * MON-FRI");

                CronTrigger trigger3 = new CronTrigger("打印3", "group3", "0 15 15 ? * MON-FRI");


                SchedulerManager.GetScheduler().ScheduleJob(m_TimingMailJobDetail1, trigger1);
                log.Info("任务:" + m_TimingMailJobDetail1.FullName + " 已经调度成功!");
                SchedulerManager.GetScheduler().ScheduleJob(m_TimingMailJobDetail2, trigger2);
                log.Info("任务:" + m_TimingMailJobDetail2.FullName + " 已经调度成功!");
                SchedulerManager.GetScheduler().ScheduleJob(m_TimingMailJobDetail3, trigger3);
                log.Info("任务:" + m_TimingMailJobDetail3.FullName + " 已经调度成功!");



                SchedulerManager.GetScheduler().Start();

                log.Info("service started ok");
            }
            catch (Exception ex)
            {
                log.Error("service started fail", ex);
                this.Stop();
            }
        }
예제 #10
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Test");
            var schedule = new SchedulerManager(1, 500);

            schedule.Schedule(new TestJob(1)).AddTime(TimeSpan.FromSeconds(1)).Repeat().Build();
            schedule.Schedule(new TestJob(2)).AddTime(TimeSpan.FromSeconds(2)).Repeat().Build();
        }
예제 #11
0
 public void ExecuteExportJob(string name)
 {
     //var eJobs = HttpContext.Application["FluentRegistry"] as FluentRegistry;
     // eJobs?.ExportJobs?.FirstOrDefault(n => n.Name == name)?.Execute();
     //((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs.FirstOrDefault(n => n.Name == name)?.Execute(AppUserState.UserName);
     SchedulerManager.ExecuteJobByName(name, AppUserState.UserName);
     //SchedulerManager.Jobs.FirstOrDefault(n => n.Name == name)?.Execute(AppUserState.UserName);
 }
예제 #12
0
        public void TestAddJobNoEventSubscription()
        {
            var jobMock = new Mock <IJob>();

            var schedulerManager = new SchedulerManager(null);

            Assert.False(schedulerManager.AddJob(jobMock.Object));
        }
        public Trigger GetTrigger()
        {
            //TODO:先判断触发器\组名是不是重复
            if (SchedulerManager.GetScheduler() != null)
            {
                foreach (string groupName in SchedulerManager.GetScheduler().TriggerGroupNames)
                {
                    if (groupName == txtTriggerGroup.Text)
                    {
                        foreach (string triggerName in SchedulerManager.GetScheduler().GetTriggerNames(groupName))
                        {
                            if (triggerName == txtTriggerName.Text)
                            {
                                MessageBox.Show("触发器组名、触发器名不能同时重复,请修改");
                                tabControl.SelectedTab = tabPageSelection;
                                return(null);
                            }
                        }
                    }
                }
            }

            switch (tabControl.SelectedIndex)
            {
            //现有触发器
            case 1:
                return(GetTriggerAvailable());

            //每天
            default:
            case 2:
                return(GetTriggerEveryDay());

            //每周
            case 3:
                return(GetTriggerEveryWeek());

            //每月
            case 4:
                return(GetTriggerEveryMonth());

            //每年
            case 5:
                return(GetTriggerEveryYear());

            //农历
            case 6:
                return(GetTriggerTraditionalHoliday());

            //国际节假日
            case 7:
                return(GetTriggerInterHoliday());

            //高级
            case 8:
                return(GetTriggerAdvance());
            }
        }
예제 #14
0
        public PartialViewResult GetHistoryPartialViewResult(Guid id)
        {
            //var jobs = ((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs;
            var returnjob = SchedulerManager.GetJobById(id); // jobs.FirstOrDefault(n => n.Id == id) ?? new ExportJob();
            var hvm       = new HistoryViewModel {
                History = new List <FluentJobExecutionHistory>(returnjob.History.OrderBy(d => d.StartDateTime))
            };

            return(PartialView("_History", hvm));
        }
예제 #15
0
 internal static void Term()
 {
     Log.Info("-----------------Begin Term()-----------------");
     PluginsTerm();
     DownloadManager.Close();
     SettingManager.SaveSettingFile();
     SchedulerManager.Term();
     Log.Term();
     Log.Info("-----------------End Term()-----------------");
 }
예제 #16
0
        public InjectionManager(MainFrm main)
        {
            MainUI          = main;
            PrimitiveMngr   = new PrimitiveManager(main);
            SchedulerMngr   = new SchedulerManager(main);
            ConstructerMngr = new ConstructerManager(main);

            MainUI.ITSendToClientBtn.Click += ITSendToClientBtn_Click;
            MainUI.ITSendToServerBtn.Click += ITSendToServerBtn_Click;
        }
예제 #17
0
        public void bindEvents()
        {
            int      clientID    = SessionHelper.getClientId();
            int      DaysinMonth = 0;
            DateTime fromDate    = DateTime.Now;
            DateTime toDate      = DateTime.Now;

            CRM.Data.Entities.SecUser user = null;

            int userID = SessionHelper.getUserId();

            user = SecUserManager.GetById(userID);

            if (user != null)
            {
                if (WebDayView1.Visible)
                {
                    fromDate = SchedulerManager.GetScheduleFromDate(WebScheduleInfo1);
                    toDate   = SchedulerManager.GetScheduleEndDate(WebDayView1);
                }
                else if (WebMonthView1.Visible)
                {
                    fromDate    = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                    DaysinMonth = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month);
                    toDate      = fromDate.AddMonths(1).AddTicks(-1);
                }

                List <LeadTask> appointments = null;

                // get events from all users and show on scheduler
                Expression <Func <Task, bool> > predicate = PredicateBuilder.True <CRM.Data.Entities.Task>();
                predicate = predicate.And(LeadTask => LeadTask.creator_id == clientID);
                predicate = predicate.And(LeadTask => LeadTask.TaskType == 2);
                predicate = predicate.And(LeadTask => LeadTask.owner_id == userID);

                predicate = predicate.And(LeadTask => LeadTask.start_date >= fromDate && LeadTask.start_date <= toDate);


                appointments = TasksManager.GetEvents(predicate);


                Resource resource = new Resource();

                resource.DataKey = userID.ToString();

                resource.Name = user.FirstName + " " + user.LastName;

                WebScheduleInfo1.Activities.Clear();
                WebScheduleInfo1.VisibleResources.Clear();

                WebScheduleInfo1.VisibleResources.Add(resource);

                SchedulerManager.BindAppointment(WebScheduleInfo1, appointments);
            }
        }
        public ActionResult UpdateScheduleItem(ScheduleDto scheduleDto)
        {
            ActionResult ActionResult = new ActionResult();
            dynamic      Result       = new ExpandoObject();

            try
            {
                if (scheduleDto.RetryTimeLapse == 0)
                {
                    scheduleDto.RetryTimeLapse = Null.NullInteger;
                }

                if (!SchedulerManager.VerifyValidTimeLapseRetry(scheduleDto.TimeLapse, scheduleDto.TimeLapseMeasurement, scheduleDto.RetryTimeLapse, scheduleDto.RetryTimeLapseMeasurement))
                {
                    ActionResult.AddError("InvalidFrequencyAndRetry", Localization.GetString("InvalidFrequencyAndRetry", Components.Constants.TaskSchedulerResourcesFile));
                }
                else
                {
                    ScheduleItem existingItem = SchedulingProvider.Instance().GetSchedule(scheduleDto.ScheduleID);

                    ScheduleItem updatedItem = _controller.CreateScheduleItem(scheduleDto.TypeFullName, scheduleDto.FriendlyName, scheduleDto.TimeLapse, scheduleDto.TimeLapseMeasurement,
                                                                              scheduleDto.RetryTimeLapse, scheduleDto.RetryTimeLapseMeasurement, scheduleDto.RetainHistoryNum, scheduleDto.AttachToEvent, scheduleDto.CatchUpEnabled,
                                                                              scheduleDto.Enabled, scheduleDto.ObjectDependencies, scheduleDto.ScheduleStartDate, scheduleDto.Servers);
                    updatedItem.ScheduleID = scheduleDto.ScheduleID;


                    if (updatedItem.ScheduleStartDate != existingItem.ScheduleStartDate ||
                        updatedItem.Enabled ||
                        updatedItem.Enabled != existingItem.Enabled ||
                        updatedItem.TimeLapse != existingItem.TimeLapse ||
                        updatedItem.RetryTimeLapse != existingItem.RetryTimeLapse ||
                        updatedItem.RetryTimeLapseMeasurement != existingItem.RetryTimeLapseMeasurement ||
                        updatedItem.TimeLapseMeasurement != existingItem.TimeLapseMeasurement)
                    {
                        SchedulingProvider.Instance().UpdateSchedule(updatedItem);
                        ActionResult.Message = Localization.GetString("ScheduleItemUpdateSuccess", Components.Constants.TaskSchedulerResourcesFile);
                    }
                    else
                    {
                        ActionResult.Message = Localization.GetString("ScheduleItemUpdateSuccess", Components.Constants.TaskSchedulerResourcesFile);
                        SchedulingProvider.Instance().UpdateScheduleWithoutExecution(updatedItem);
                    }
                    Result.Status        = "Success";
                    Result.ScheduleItems = SchedulerManager.GetScheduleItems(0, 14);
                    ActionResult.Data    = Result;
                }
            }
            catch (Exception exc)
            {
                Exceptions.LogException(exc);
                Result.Status = exc.Message.ToString();
                ActionResult.AddError("ScheduleItemUpdateError", Localization.GetString("ScheduleItemUpdateError", Components.Constants.TaskSchedulerResourcesFile));
            }
            return(ActionResult);
        }
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        static void Main(string[] args)
        {
            // new Generatesd11x5LotteryIssue().Generate(DateTime.Now);

            /*windows service*/

            /*
             * ServiceBase[] ServicesToRun;
             * ServicesToRun = new ServiceBase[]
             * {
             *  new YtgSchedulerService()
             * };
             * ServiceBase.Run(ServicesToRun);
             */
            // new GrnerateFc3dLotteryIssue().Generate();

            /*************
             * 开发中多次修改数据实体和数据库结构
             * 加入该句代码可自动同步实体与数据库版本
             * 实际发布中将注释该代码
             * ************/
            /*
             * Ytg.Scheduler.Comm.Bets.Calculate.Ssc.RenXuanEr.RenXuanZuXuanDanShi bz = new Comm.Bets.Calculate.Ssc.RenXuanEr.RenXuanZuXuanDanShi();
             *
             * var detail = new BetDetail();
             * detail.PalyRadioCode = 1547;
             * detail.IssueCode = "1001";
             * detail.BetContent = bz.HtmlContentFormart("01&02&03&04&05&06&07&08&09&12&13&14&15&16&17&18&19&23&24&25&26&27&28&29&34&35&36&37&38&39&45&47&58&59&67&68&69&78&79&89_45");
             * Console.WriteLine(detail.BetContent);
             * bz.Calculate("1001", "6,4,4,4,8", detail);
             * Console.WriteLine(detail.IsMatch + "  " + detail.WinMoney);
             * Console.ReadKey();
             */

            Database.SetInitializer(new MigrateDatabaseToLatestVersion <YtgDbContext, YtgDbContextConfiguration>());
            LogManager.Info("同步数据库结构成功!");
            // ISysUserBalanceService mSysUserBalanceService;//用户余额

            Ytg.Scheduler.Tasks.AutoGroupBy.Run.Start();

            InintData.Initital();


            //初始化任务数据
            var iScheduler = new SchedulerManager().Initital();

            iScheduler.Start();
            LogManager.Info("scheduler start !");
            LogManager.Info("服务启动成功!");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new frmtest());
            Console.Read();
        }
예제 #20
0
        public RegularMailService()
        {
            InitializeComponent();

            //初始化调度器工厂
            ISchedulerFactory sf = SchedulerManager.GetSchedulerFactory();
            //获取默认调度器
            IScheduler scheduler = SchedulerManager.GetScheduler();

            SchedulerManager.GetScheduler().AddGlobalJobListener(SchedulerManager.GetJobListener());
        }
예제 #21
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);


            SchedulerManager.Start();
        }
        internal static List <IUIData> GetData(int PortalID, UserInfo userinfo)
        {
            Dictionary <string, IUIData> Setting = new Dictionary <string, IUIData>
            {
                { "FriendlyName", new UIData {
                      Name = "FriendlyName", Value = ""
                  } },
                { "ObjectDependencies", new UIData {
                      Name = "ObjectDependencies", Value = ""
                  } },
                { "ScheduleStatus", new UIData {
                      Name = "ScheduleStatus", Options = SchedulerFactory.GetScheduleStatus()
                  } },
                { "GetScheduleItems", new UIData {
                      Name = "GetScheduleItems", Options = SchedulerManager.GetScheduleItems()
                  } },
                { "FrequencyPeriod", new UIData {
                      Name = "FrequencyPeriod", Options = SchedulerManager.TimePeriod(), OptionsText = "Text", OptionsValue = "Value", Value = "s"
                  } },
                { "RunTimeLapsePeriod", new UIData {
                      Name = "RunTimeLapsePeriod", Options = SchedulerManager.TimePeriod(), OptionsText = "Text", OptionsValue = "Value", Value = "s"
                  } },
                { "CatchUpTasks", new UIData {
                      Name = "CatchUpTasks", Options = SchedulerManager.CatchUpTask(), OptionsText = "Text", OptionsValue = "Value", Value = "false"
                  } },
                { "RunOnEvent", new UIData {
                      Name = "RunOnEvent", Options = SchedulerManager.RunOnEvent(), OptionsText = "Text", OptionsValue = "Value", Value = "0"
                  } },
                { "RetainScheduleHistory", new UIData {
                      Name = "RetainScheduleHistory", Options = SchedulerManager.RetainScheduleHistory(), OptionsText = "Text", OptionsValue = "Value", Value = "0"
                  } },
                { "EnabledScheduling", new UIData {
                      Name = "EnabledScheduling", Value = "false"
                  } },
                { "ScheduleStartDate", new UIData {
                      Name = "ScheduleStartDate", Value = ""
                  } },
                { "RetryTimeLapse", new UIData {
                      Name = "RetryTimeLapse", Value = ""
                  } },
                { "Server", new UIData {
                      Name = "Server", Value = ""
                  } },
                { "Frequency", new UIData {
                      Name = "Frequency", Value = ""
                  } },
                { "ClassNameAssembly", new UIData {
                      Name = "ClassNameAssembly", Value = ""
                  } }
            };

            return(Setting.Values.ToList());
        }
 public void UpdateUI()
 {
     lbTriggersAvailable.Items.Clear();
     foreach (string group in SchedulerManager.GetScheduler().TriggerGroupNames)
     {
         foreach (string trigger in SchedulerManager.GetScheduler().GetTriggerNames(group))
         {
             TriggerAndGroup triggerAndGroup = new TriggerAndGroup(group, trigger);
             lbTriggersAvailable.Items.Add(triggerAndGroup);
         }
     }
 }
예제 #24
0
        public void ThreadStar()
        {
            try
            {
                SchedulerManager.Start();

                Response.Write(string.Format("Total: {0} Jobs Started", SchedulerManager.CurrentJobsList.Count));
            }
            catch (Exception ex)
            {
                Response.Write("error:" + ex);
            }
        }
예제 #25
0
        private void checkForReminders_ori()
        {
            List <vw_Reminder> reminders = SchedulerManager.GetUpcomingReminders(userID);

            if (reminders != null && reminders.Count > 0)
            {
                Session["vw_reminders"] = reminders;

                string js = "PopupCenter('../../Content/Reminder.aspx', 'Reminder', 600, 400);";

                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "rk", js, true);
            }
        }
 /// <summary>
 /// 从已有的触发器选择
 /// </summary>
 /// <returns></returns>
 private Trigger GetTriggerAvailable()
 {
     if (lbTriggersAvailable.SelectedIndex > -1)
     {
         TriggerAndGroup triggerAndGroup = lbTriggersAvailable.SelectedItem as TriggerAndGroup;
         return(SchedulerManager.GetScheduler().GetTrigger(triggerAndGroup.TriggerName, triggerAndGroup.GroupName));
     }
     else
     {
         MessageBox.Show("请选择现有的触发器,如果没有请添加");
         return(null);
     }
 }
예제 #27
0
        public void CancelExecution(Guid id)
        {
            SchedulerManager.StopExecutionById(id, true, AppUserState.Name);

            //var ind = ((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs.FindIndex(n => n.Id == id);
            //if (ind >= 0)
            //{
            //    ((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs[ind].Stop(true, AppUserState.Name);

            //}
            ////var fluentRegistry = (FluentRegistry)HttpContext.Application["FluentRegistry"];
            ////fluentRegistry?.CommitExportJobs(id);
        }
예제 #28
0
 public void DeleteExportJob(Guid id)
 {
     SchedulerManager.DeleteJobById(id);
     //var ind = ((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs.FindIndex(n => n.Id == id);
     //if (ind >= 0)
     //{
     //    ((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs[ind].DeleteJob();
     //    //((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs[ind].Stop(true);
     //    //((FluentRegistry)HttpContext.Application["FluentRegistry"]).ExportJobs.RemoveAt(ind);
     //}
     //var fluentRegistry = (FluentRegistry)HttpContext.Application["FluentRegistry"];
     //fluentRegistry?.CommitExportJobs(id);
 }
예제 #29
0
        private void btGetList_Click()
        {
            try{
                var scheduler = new SchedulerManager(_session);
                using (var lForm = new FrmGetList(_excelapp.Hwnd, scheduler.EnumFolders, scheduler.EnumReports)) {
                    lForm.ReportsPath        = _settings.GetWorksheetParam("ReportsPath", "");
                    lForm.AssociatedInstance = _settings.GetWorksheetParam("AssociatedInstance", "");
                    lForm.IncludePrompts     = _settings.GetWorksheetParam("IncludePrompts", false);
                    if (lForm.ShowDialog() == DialogResult.OK)
                    {
                        _settings.SetWorksheetParam("ReportsPath", lForm.ReportsPath);
                        _settings.SetWorksheetParam("AssociatedInstance", lForm.AssociatedInstance);
                        _settings.SetWorksheetParam("IncludePrompts", lForm.IncludePrompts);
                        var      runner   = new FrmRunner(_session.Logger, scheduler.Cancel);
                        Report[] reports  = null;
                        var      exitcode = runner.Execute(() =>
                                                           scheduler.GetReports(lForm.ReportsPath, lForm.IncludePrompts, lForm.AssociatedInstance, out reports)
                                                           );
                        if (exitcode == ExitCode.FAILED || exitcode == ExitCode.CANCELED)
                        {
                            return;
                        }
                        var worksheet = (Excel.Worksheet)_excelapp.ActiveSheet;
                        SwitchExcelToIdle(_excelapp, false);

                        worksheet.Cells.EntireColumn.Hidden = false;
                        worksheet.Cells.EntireRow.Hidden    = false;
                        foreach (Excel.ListObject lo in worksheet.ListObjects)
                        {
                            lo.Delete();
                        }

                        var data       = _parser.ParseReportsToDataArray(reports);
                        var title      = _parser.ParseReportsToTitleArray(reports);
                        var nbRow      = data.GetLength(0);
                        var nbCol      = title.GetLength(1);
                        var listobject = worksheet.ListObjects.Add(Excel.XlListObjectSourceType.xlSrcRange, worksheet.Cells.Resize[Math.Max(nbRow + 1, 2), nbCol], Type.Missing, Excel.XlYesNoGuess.xlYes);
                        listobject.HeaderRowRange.Value = title;
                        if (nbRow > 0)
                        {
                            listobject.DataBodyRange.NumberFormat = "@";
                            _parser.FormatListObject(listobject);
                            listobject.DataBodyRange.Value    = data;
                            listobject.DataBodyRange.WrapText = false;
                            _parser.AddPromptsNameAsComment(listobject, reports);
                        }
                        SwitchExcelToIdle(_excelapp, true);
                    }
                }
            } catch (Exception ex) { new BusinessObjectsUtils.FrmException(_excelapp.Hwnd, ex).ShowDialog(); }
        }
예제 #30
0
        public PartialViewResult ExportJobs()
        {
            //var refr = HttpContext.Application["FluentRegistry"] as FluentRegistry;
            //refr.LoadExportJobs();
            if (AppUserState == null || AppUserState.Connected == false)
            {
                return(PartialView("ExportJobs", new ExportJobViewModel()));
            }
            var hvm = new ExportJobViewModel {
                EJobs = SchedulerManager.GetJobsByType(JobTypeEnum.InFuseExportJob)
            };

            return(PartialView("ExportJobs", hvm));
        }
예제 #31
0
        protected override void OnStop()
        {
            try
            {
                IScheduler scheduler = SchedulerManager.GetScheduler();
                scheduler.Shutdown(false);

                log.Info("service stopped ok");
            }
            catch (Exception ex)
            {
                log.Error("service stopped fail", ex);
            }
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(Request["ScheduledTaskId"]))
            scheduledTaskId = Convert.ToInt32(Request["ScheduledTaskId"]);

        //txtLastRunStatus.Enabled = false;

        if (!IsPostBack)
        {
            if (scheduledTaskId > 0)
            {
                schedulerManager = new SchedulerManager(this);
                scheduledTask = schedulerManager.GetScheduleTask(scheduledTaskId);

                txtName.Text = scheduledTask.Name;
                ucPeriodDate.DateTime = scheduledTask.StartTime;
                ucCurrFieldTxtPeriod.CurrencyValue = scheduledTask.Period;
                chkEnabled.Checked = scheduledTask.Enabled;
                txtTypeFullName.Text = scheduledTask.TypeFullName;
                txtLastRunStatus.Value = scheduledTask.LastRunStatus;
            }
        }

    }
예제 #33
0
        /// <summary>
        /// Verifies each second whether is to do work schedule task
        /// </summary>
        private void CheckTimer()
        {
            while (SchedulerSection.Enabled)
                using (var manager = new SchedulerManager(null))
                {
                    Tasks = manager.GetAllScheduleTasks().ToList();
                    foreach (ScheduledTask task in Tasks)
                        if (task.Enabled)
                        {
                            var start = task.StartTime;
                            var now = DateTime.Now;

                            if (start.Date == now.Date && start.Hour == now.Hour && start.Minute == now.Minute)
                                task.Start(ar => manager.SaveScheduleTask((ScheduledTask)ar.AsyncState));
                            else
                                while (task.StartTime < DateTime.Now.AddMinutes(-15))
                                    task.StartTime = task.StartTime.AddMinutes(task.Period);


                        }

                    Thread.Sleep(60000);
                }
        }
예제 #34
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SchedulerForm"/> class.
        /// </summary>
        /// <param name="defaultParam">
        /// The default param.
        /// </param>
        /// <param name="logger">
        /// The logger.
        /// </param>
        public SchedulerForm(ExecutionParam defaultParam, ILogger logger)
        {
            this.InitializeComponent();
            this.InitializeImageList();
            this._logger = logger;
            this._scheduler = new SchedulerManager(this._logger);
            this.Text = AppUtil.ProductName + " " + this.Text;
            this.loadProgress.ControlItem.ContainerControl = this;
            this.loadProgress.ControlItem.ShowInTaskbar = false;
            this.statusStrip.Items.Add(this.loadProgress);
            this._defaultParam = defaultParam.ReflectionDeepClone(logger);
            if (this._defaultParam.OperationMode != OperationMode.GetFareAndSave && this._defaultParam.OperationMode != OperationMode.LiveMonitor)
            {
                this._defaultParam.OperationMode = OperationMode.GetFareAndSave;
            }

            this.loadProgress.VisibleChanged += this.LoadProgress_VisibleChanged;
        }