//定时任务 Quartz.net (另外还有 hangfire)
//计划者(IScheduler) 工作(IJob) 触发器(Trigger) 给计划者一个工作 让他在Trigger触发的条件下执行工作
//将要执行的任务的代码写到实现Ijob接口的Excute方法中即可,时间来到的时候Excute方法会被调用
//用法:1、安装Quartz.net 版本变化大 所以要版本保持一致Quartz.net 2.5.0(Install-Package Quartz Version 2.5.0)
//2、定义一个实现了IJob接口的类TestJob 把要执行的代码写入到Execute方法中
//3、把下面代码写到程序中 初始化一次即可
IScheduler sched = new StdSchedulerFactory().GetScheduler();
//当同时执行多个任务时 重复下面代码即可 注意名字不能重复("jdTest","triggerTest")
JobDetailImpl jbBossReport = new JobDetailImpl("jdTest", typeof(TestJob));
IMutableTrigger triggerBossReport = CronScheduleBuilder.DailyAtHourAndMinute(22, 25).Build();
triggerBossReport.Key = new TriggerKey("triggerTest");
sched.ScheduleJob(jbBossReport, triggerBossReport);
sched.Start();
/*
CronScheduleBuilder
每月固定时间
//每周五、日的13:55执行
CronScheduleBuilder.AtHourAndMinuteOnGivenDaysOfWeek(13, 55, DayOfWeek.Friday, DayOfWeek.Sunday);
//每月固定时间
CronScheduleBuilder.WeeklyOnDayAndHourAndMinute();
定时模式 CalendarIntervalScheduleBuilder
CalendarIntervalScheduleBuilder builder = CalendarIntervalScheduleBuilder.Create();
builder.WithInterval(3, IntervalUnit.Second); //每3s执行一次
还有SimpleScheduleBuilder等,其实不用那么多 太复杂自己写crond表达式 https://www.cnblogs.com/junrong624/p/4239517.html
*/
//log4NET 是一个java版的log4J移植过来的日志框架
//级别:
// trace、debug、info、warn、error、fatal ,常用debug(程序员临时跟踪执行,在正式项目中不应该执行)
//特殊执行 :all(全部显示)、off(全部不显示)
//append:可以把日志输出到控制台 文件、数据库、ftp服务器,甚至可以把日志输出到邮件短信等。不同场景就是不同的
//appender 可以添加多个appender,可以设定不同级别使用不同appender
//滚动日志
//1、InStall-Package Log4Net //InStall-Package Log4Net -Version 2.0.8
public Form1()
{
InitializeComponent();
log4net.Config.XmlConfigurator.Configure();
ILog log = LogManager.GetLogger(typeof(Form1));
log.Debug("你好");
log.Warn("错误");
}