.NETCore 知识点记录-QuartzCore 定时任务

3 篇文章 0 订阅
1 篇文章 0 订阅

1.定时任务框架:

1.Pomelo.AspNetCore.TimedJob

2.Quartzcore

第二种已经实现 基于 官网 最新 3.0Bate版本


//核心代码:  参照官网 :

官网地址:  https://www.quartz-scheduler.net/documentation/quartz-3.x/quick-start.html

需要注意的地方:

publicclassHelloJob:IJob{publicTaskExecute(IJobExecutionContextcontext){awaitConsole.Out.WriteLineAsync("Greetings from HelloJob!");}}

官网在介绍 HelloJob的时候

在EF里面  await  是要 配合 async 来使用的  (写成下面这样就好)

publicclassHelloJob:IJob{public asyncTaskExecute(IJobExecutionContextcontext){awaitConsole.Out.WriteLineAsync("Greetings from HelloJob!");}}

namespace CCDN.XXXX
{
    class Program
    {
        static void Main(string[] args)
        {         
            //LogProvider.SetCurrentLogProvider(new ConsoleLogProvider());
            RunProgram().GetAwaiter().GetResult();
        }
        
        private static async Task RunProgram()
        {
            int i = 0;
            DateTime myStartTime = Convert.ToDateTime("2016-12-08");
            try
            {
                // Grab the Scheduler instance from the Factory
                NameValueCollection props = new NameValueCollection
                {
                    { "quartz.serializer.type", "binary" }
                };
                StdSchedulerFactory factory = new StdSchedulerFactory(props);
                IScheduler scheduler = await factory.GetScheduler();


                // 启动任务调度器
                await scheduler.Start();


                // 定义一个 Job
                IJobDetail job = JobBuilder.Create<ExportWXDataJob>()
                    .WithIdentity("job1", "group1")
                    .Build();                
                ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
                    .WithIdentity("trigger1") // 给任务一个名字
                    .StartAt(myStartTime) // 设置任务开始时间
                    .ForJob("job1", "group1") //给任务指定一个分组
                    .WithSimpleSchedule(x => x
                    .WithIntervalInSeconds(20)  //循环的时间
                    .RepeatForever())               
                    .Build();


                // 等待执行任务
                await scheduler.ScheduleJob(job, trigger);


                // some sleep to show what's happening
                //await Task.Delay(TimeSpan.FromMilliseconds(2000));


                // and last shut down the scheduler when you are ready to close your program
                //await scheduler.Shutdown();
                i++;
                Console.ReadLine();
                Console.WriteLine(DateTime.Now.ToString()+"这是第"+i+"次执行任务");
            }
            catch (SchedulerException se)
            {
                await Console.Error.WriteLineAsync(se.ToString());
            }
        }
}

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值