Axin911

导航

QuartZ

1.nuget:引用QuartZ
 
2.
public async static Task Init()
{
/// 创建单元载体
 
StdSchedulerFactory factory = new StdSchedulerFactory();
 
IScheduler scheduler = await factory.GetScheduler();
 
await scheduler.Start();
 
 
//Job(作业)
IJobDetail jobDetail = JobBuilder.Create()
.WithIdentity("SendMessageJob", "gourp1")
.WithDescription("this is send message job")
.Build();
 
jobDetail.JobDataMap.Add("K1", "axin1"); //传入参数
jobDetail.JobDataMap.Add("K2", "axin2");
jobDetail.JobDataMap.Add("K3", "axin3");
 
//Trigger(时间策略)
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("sendMessageTrigger", "group1")
//.StartNow()
.WithSimpleSchedule(w => w.WithIntervalInSeconds(5).WithRepeatCount(300))
.Build();
 
trigger.JobDataMap.Add("K4", "axin4"); //传入参数
 
//把时间策略和作业承载到单元上
await scheduler.ScheduleJob(jobDetail, trigger);
 
}
}
 
3.
public class SendMessageJob : IJob
{
///
/// task 内部就是要执行的任务
///
///
///
///
public async Task Execute(IJobExecutionContext context)
{
//throw new NotImplementedException();
 
await Task.Run(() =>
{
//Console.WriteLine("任务开始");
//Console.WriteLine("任务开始");
//Console.WriteLine("任务开始");
//Console.WriteLine("任务开始");
//Console.WriteLine("任务开始");
 
string str = context.JobDetail.JobDataMap.GetString("K1"); //接受参数
 
string str2 = context.Trigger.JobDataMap.GetString("K4"); //接受参数
 
 
Console.WriteLine(str);
 
Console.WriteLine(str2);
});
 
 
 
}
}
 
4.
public class Program
{
static void Main(string[] args)
{
try
{
Manager.Init().GetAwaiter().GetResult();
 
Console.ReadLine();
}
catch (Exception)
{
 
throw;
}
 
}
}

posted on 2021-12-14 17:34  Axin911  阅读(30)  评论(0编辑  收藏  举报