1.創建定時器
public static async void SynChronizeStart8()
{
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
IJobDetail job = JobBuilder.Create<JobTask>().WithIdentity("JLjob", "JLgroup").Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("JLjob", "JLgroup")
.WithCronSchedule("0 0/1 7 * * ?")
.Build();
await scheduler.ScheduleJob(job, trigger);
await scheduler.Start();
}
withIdentity(...)第一個參數為秒,第二個參數為分鐘,第三個參數為小時,第二個的斜杠後面是間隔多久執行一次。
2.創建任務執行代碼
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using FA.Common;
using FA.Entity.EntityFramework;
using Quartz;
using FA.WebApp.Controllers;
using FA.Entity;
namespace FA.WebApp.TaskShedual
{
public class JobTask : IJob
{
//創建數據庫連接
DataDbcontext _db = new DataDbcontext();
FAS fas = new FAS();
public Task Execute(IJobExecutionContext context)
{
run();
return null;
}
public void run()
{
//建立臨時表
DataTable dt_station = new DataTable();
dt_station.Columns.Add("COUNTALL", Type.GetType("System.String"));
dt_station.Columns.Add("COUNTPOOR", Type.GetType("System.String"));
dt_station.Columns.Add("DATA_ARR", Type.GetType("System.String"));
FormController FormController = new FormController();
string countAll=FormController.GetAOICountAll(productModel);
string countPoor = FormController.GetAOICountPoor(productModel);
string dataArr = FormController.GetAOIData(productModel);
DataRow dtRow = dt_station.NewRow();
dtRow["COUNTALL"] = countAll;
dtRow["COUNTPOOR"] = countPoor;
dtRow["DATA_ARR"] = dataArr;
dt_station.Rows.Add(dtRow);
DateTime dateTime = DateTime.Now;
for (int i = 0; i < dt_station.Rows.Count; i++)
{
FAS_AOI_INFO fai = new FAS_AOI_INFO();
fai.ID = Guid.NewGuid().ToString();
fai.COUNTALL = dt_station.Rows[i]["COUNTALL"].ToString();
fai.COUNTPOOR = dt_station.Rows[i]["COUNTPOOR"].ToString();
fai.DATA_ARR = dt_station.Rows[i]["DATA_ARR"].ToString();
fai.CREATE_DATE = dateTime;
_db.FAS_AOI_INFO.Add(fai);
}
//將臨時表的數據存進數據庫
_db.SaveChanges();
}
}
}
3.獲取數據庫數據
public ActionResult GetResult()
{
var msg = "";
bool isSucceed = false;
string strData = "";
try
{
FormController FormController = new FormController();
String sql = @"select COUNTALL, COUNTPOOR, DATA_ARR, to_char(CREATE_DATE,'HH24:mi') CREATE_DATE From FAS_AOI_INFO";
}
DataTable dt_station = fas.ExcuteSql(sql, "IQCDB").ToDataSet().Tables[0];
msg = "成功";
isSucceed = true;
strData = Newtonsoft.Json.JsonConvert.SerializeObject(dt_station);
}
catch (Exception ex)
{
msg = "獲取數據異常" + ex;
isSucceed = false;
}
DataResult result = new DataResult
{
IsSucceed = isSucceed,
Result = strData,
Message = msg,
StatusCode = 0,
Total = 0,
};
return Json(result);
}