示例#1
0
        private void Start(object parameter)
        {
            if (string.IsNullOrEmpty(TaskBackUpPath))
            {
                MessageBoxHelper.MessageBoxShowWarning("请配置保存文件的路径!");
                return;
            }

            if (TaskBackUpPath.ToLower().StartsWith("c:"))
            {
                if (MessageBoxHelper.MessageBoxShowQuestion("请确认是否将备份文件保存的C盘?") == MessageBoxResult.No)
                {
                    return;
                }
            }

            foreach (var policy in Policys)
            {
                string cron = ConvertToCron(policy);
                if (policy.BackUpType == BackUpType.DataBase)
                {
                    ConfigHelper.WriterAppConfig("DataBaseBackUpJob", cron);

                    var triggerKey = scheduler.GetTriggerKeys(GroupMatcher <TriggerKey> .GroupEquals("scheduler")).Where(x => x.Name == "DataBaseBackUpJob").FirstOrDefault();
                    if (triggerKey != null)
                    {
                        scheduler.UnscheduleJob(triggerKey);
                    }
                    var job = JobBuilder.Create(typeof(DataBaseBackUpJob))
                              .WithIdentity("DataBaseBackUpJob", "scheduler").Build();
                    var trigger = TriggerBuilder.Create()
                                  .StartNow()
                                  .WithIdentity("DataBaseBackUpJob", "scheduler")
                                  .WithCronSchedule(cron)
                                  .Build();
                    scheduler.ScheduleJob(job, trigger);
                }
                else
                {
                    ConfigHelper.WriterAppConfig("TablesBackUpJob", cron);
                    var triggerKey = scheduler.GetTriggerKeys(GroupMatcher <TriggerKey> .GroupEquals("scheduler")).Where(x => x.Name == "TablesBackUpJob").FirstOrDefault();
                    if (triggerKey != null)
                    {
                        scheduler.UnscheduleJob(triggerKey);
                    }

                    var job = JobBuilder.Create(typeof(TablesBackUpJob))
                              .WithIdentity("TablesBackUpJob").Build();
                    var trigger = TriggerBuilder.Create()
                                  .StartNow()
                                  .WithIdentity("TablesBackUpJob", "scheduler")
                                  .WithCronSchedule(cron)
                                  .Build();
                    scheduler.ScheduleJob(job, trigger);
                }
            }

            Notice.Show("定时任务已经启动....", "通知", 3, MessageBoxIcon.Success);
        }
示例#2
0
        private void ManualExecute(object parameter)
        {
            if (string.IsNullOrEmpty(TaskBackUpPath))
            {
                MessageBoxHelper.MessageBoxShowWarning("请配置文件的路径!");
                return;
            }

            if (!(CurrentPolicy.IsTaskBackUpDataBase || CurrentPolicy.IsTaskBackUpTables))
            {
                MessageBoxHelper.MessageBoxShowWarning("请选择备份类型!");
                return;
            }

            if (TaskBackUpPath.ToLower().StartsWith("c:"))
            {
                if (MessageBoxHelper.MessageBoxShowQuestion("请确认是否将备份文件保存的C盘?") == MessageBoxResult.No)
                {
                    return;
                }
            }

            ExecuteBackUp executeBackUp = new ExecuteBackUp();

            if (CurrentPolicy.BackUpType == BackUpType.DataBase)
            {
                Task.Factory.StartNew(() =>
                {
                    executeBackUp.BackUpDataBase();
                });
            }
            else
            {
                Task.Factory.StartNew(() =>
                {
                    executeBackUp.BackUpTables();
                });
            }
        }
        private void ManualExecute(object parameter)
        {
            if (string.IsNullOrEmpty(TaskBackUpPath))
            {
                MessageBoxHelper.MessageBoxShowWarning("请配置文件的路径!");
                return;
            }

            if (!(CurrentPolicy.IsTaskBackUpDataBase || CurrentPolicy.IsTaskBackUpTables))
            {
                MessageBoxHelper.MessageBoxShowWarning("请选择备份类型!");
                return;
            }

            if (TaskBackUpPath.ToLower().StartsWith("c:"))
            {
                if (MessageBoxHelper.MessageBoxShowQuestion("请确认是否将备份文件保存的C盘?") == MessageBoxResult.No)
                {
                    return;
                }
            }

            if (CurrentPolicy.IsTaskBackUpDataBase)
            {
                var policy = Policys.Where(x => x.BackUpType == BackUpType.DataBase &&
                                           x.DataBaseName == CurrentPolicy.DataBaseName).FirstOrDefault();
                if (policy != null)
                {
                    ExecuteBackUp executeBackUp = new ExecuteBackUp();
                    string        dbName        = policy.DataBaseName;
                    Task.Factory.StartNew(() =>
                    {
                        executeBackUp.BackUpDataBase(dbName);
                    });
                }
                else
                {
                    MessageBoxHelper.MessageBoxShowWarning("未配置全库备份类型的策略,请确认!");
                    return;
                }
            }

            if (CurrentPolicy.IsTaskBackUpTables)
            {
                var policy = Policys.Where(x => x.BackUpType == BackUpType.Tables &&
                                           x.DataBaseName == CurrentPolicy.DataBaseName).FirstOrDefault();
                if (policy != null)
                {
                    ExecuteBackUp executeBackUp = new ExecuteBackUp();
                    string        dbName        = policy.DataBaseName;
                    Task.Factory.StartNew(() =>
                    {
                        executeBackUp.BackUpTables(dbName);
                    });
                }
                else
                {
                    MessageBoxHelper.MessageBoxShowWarning("未配置基础业务备份类型的策略,请确认!");
                    return;
                }
            }
        }