Пример #1
0
        public bool EditScheduleDetailsTrigger(ScheduleJob_Details_Triggers data)
        {
            using (IDbConnection connection = SqlConnectionHelper.GetSQLiteConnection())
            {
                var sql = string.Format(
                    @"UPDATE ScheduleJob_Details_Triggers set sched_name='{1}',job_name='{2}',trigger_name='{3}',trigger_group='{4}',job_group='{5}',cronexpression='{6}',trigger_type='{7}',repeat_count='{8}',repeat_interval='{9}',startTime={10},endTime={11},description='{12}'
where id={0}; ", data.id, data.sched_name, data.job_name, data.trigger_name, data.trigger_group, data.job_group, data.cronexpression, data.trigger_type, data.repeat_count, data.repeat_interval,
                    data.startTime == null ? "NULL" : data.startTime.ToString(),
                    data.endTime == null ? "NULL" : data.endTime.ToString(),
                    data.description);
                return(connection.Execute(sql) > 0);
            }
        }
Пример #2
0
        /// <summary>
        /// 写入数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool SaveScheduleDetailsTrigger(ScheduleJob_Details_Triggers data)
        {
            using (IDbConnection connection = SqlConnectionHelper.GetSQLiteConnection())
            {
                var sql = string.Format(
                    @"INSERT INTO ScheduleJob_Details_Triggers(sched_name,job_name,trigger_name,trigger_group,job_group,cronexpression,trigger_type,repeat_count,repeat_interval,startTime,endTime)
VALUES('{1}', '{2}', '{3}', '{4}', '{5}','{6}','{7}','{8}','{9}',{10},{11}); ", data.id, data.sched_name, data.job_name, data.trigger_name, data.trigger_group, data.job_group, data.cronexpression, data.trigger_type, data.repeat_count, data.repeat_interval,
                    data.startTime == null ? "NULL" : data.startTime.ToString(),
                    data.endTime == null ? "NULL" : data.endTime.ToString()
                    );
                return(connection.Execute(sql) > 0);
            }
        }
        /// <summary>
        /// 比较值是否相等
        /// </summary>
        /// <param name="plNew"></param>
        /// <returns></returns>
        public bool scheEquals(object obj)
        {
            ScheduleJob_Details_Triggers jobDetailTrigger = obj as ScheduleJob_Details_Triggers;

            return(jobDetailTrigger != null &&
                   jobDetailTrigger.sched_name == sched_name &&
                   jobDetailTrigger.trigger_name == trigger_name &&
                   jobDetailTrigger.trigger_group == trigger_group &&
                   jobDetailTrigger.job_name == job_name &&
                   jobDetailTrigger.job_group == job_group &&
                   jobDetailTrigger.description == description &&
                   jobDetailTrigger.cronexpression == cronexpression &&
                   jobDetailTrigger.repeat_count == repeat_count &&
                   jobDetailTrigger.repeat_interval == repeat_interval &&
                   jobDetailTrigger.startTime == startTime &&
                   jobDetailTrigger.endTime == endTime &&
                   jobDetailTrigger.trigger_type == trigger_type);
        }
Пример #4
0
        /// <summary>
        /// 根据数据采集计划来创建作业触发器
        /// </summary>
        /// <param name="jobDetail">采集计划</param>
        /// <param name="clMethod">数据采集方法</param>
        /// <param name="forJob">将此触发器添加到哪个作业</param>
        /// <returns></returns>
        public static ITrigger CreateTrigger(ScheduleJob_Details_Triggers trigger, IJobDetail forJob = null)
        {
            if (trigger == null)
            {
                throw new ArgumentNullException("『CreateTrigger』的trigger参数为空!");
            }
            TriggerBuilder builder = TriggerBuilder.Create();

            builder =
                builder
                .WithIdentity(GetTriggerKey(trigger))
                .WithDescription(trigger.description);
            builder =
                trigger.trigger_type.ToUpper() == "cron".ToUpper() ? (
                    string.IsNullOrEmpty(trigger.cronexpression) ?
                    builder.WithSimpleSchedule(x => x.WithIntervalInMinutes(string.IsNullOrEmpty(trigger.repeat_interval) ? 30 : int.Parse(trigger.repeat_interval)).WithRepeatCount(string.IsNullOrEmpty(trigger.repeat_count) ? 10 : int.Parse(trigger.repeat_count)))
                    : builder.WithCronSchedule(trigger.cronexpression)
                    ) : builder.WithSimpleSchedule(x => x.WithIntervalInMinutes(string.IsNullOrEmpty(trigger.repeat_interval) ? 30 : int.Parse(trigger.repeat_interval)).WithRepeatCount(string.IsNullOrEmpty(trigger.repeat_count) ? 10 : int.Parse(trigger.repeat_count)));
            if (forJob != null)
            {
                builder.ForJob(forJob);
            }
            return(builder.Build());
        }
Пример #5
0
 /// <summary>
 /// 根据采集计划产生触发器的唯一标识
 /// </summary>
 /// <param name="trigger">采集计划</param>
 /// <param name="clMethod">采集方式</param>
 /// <returns></returns>
 public static TriggerKey GetTriggerKey(ScheduleJob_Details_Triggers trigger)
 {
     return(new TriggerKey(
                string.Format(TRINameFormat, trigger.sched_name, trigger.job_name, trigger.trigger_name, trigger.trigger_group), trigger.trigger_group));
 }