//定時任務 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("錯誤");
}