【Quartz】定时器初步实验(一)

简介: 原文:【Quartz】定时器初步实验(一)    以前就了解了Quartz这个定时框架,但是一直没有认真的去关注他,最近忽然看到已经更新到3.0.4支持异步操作了所以就写个简单的小例子看看好用不。 第一步:创建项目 创建一个新项目,可以是ASP.NET MVC,WebForms,Winforms等多种.Net项目,这里使用的是VS2017,创建了一个MVC项目     创建完成后大致项目层级为:     第二部:引用 我们首先要在项目中引用Quartz.dll。
原文: 【Quartz】定时器初步实验(一)

    以前就了解了Quartz这个定时框架,但是一直没有认真的去关注他,最近忽然看到已经更新到3.0.4支持异步操作了所以就写个简单的小例子看看好用不。

第一步:创建项目

创建一个新项目,可以是ASP.NET MVC,WebForms,Winforms等多种.Net项目,这里使用的是VS2017,创建了一个MVC项目

 

 

创建完成后大致项目层级为:

 

 

第二部:引用

我们首先要在项目中引用Quartz.dll。

你可以去官网现在dll:https://github.com/quartznet/quartznet

也可以使用nuget管理直接在项目安装:

Install-Package Quartz

输入安装命令后出现即安装成功:

 

 

然后在引用可以看到该dll:

 

第三步:创建任务

我们添加一个任务类然后实现IJob接口:

1     public class HelloJob : IJob
2     {
3         public Task Execute(IJobExecutionContext context)
4         {
5             System.Diagnostics.Debug.WriteLine("HelloWord");
6             return Task.FromResult(true);
7         }
8     }

千万不要忘记引用命名空间哦:

using Quartz;
using System.Threading.Tasks;

第四步:创建触发器

我这里用了一个触发器接口类。直接上代码,代码理由详情注释我就不啰嗦了。

    public class SimpleExample : IExample
    {
        public virtual async Task Run()
        {
            //创建调度器
            ISchedulerFactory sf = new StdSchedulerFactory();
            IScheduler sched = await sf.GetScheduler();

            //创建任务
            IJobDetail job = JobBuilder.Create<HelloJob>()
               .WithIdentity("job1", "group1")
               .Build();

            //创建触发器
            // DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);//定义触发规则
            ITrigger trigger = TriggerBuilder.Create()
                .WithIdentity("trg1", "group1")
                 // .StartAt(runTime)
                 .WithCronSchedule("0/5 * * * * ?")     //5秒执行一次
                .Build();
            //将任务与触发器添加到调度器中
            await sched.ScheduleJob(job, trigger);
            //启动任务
            await sched.Start();
        }
    }

第五步:也是最后一步

我们只需要调用运行就行了,我因为是试一试能不能运行,所有我直接写在了Global.asax文件的Application_Start方法里:

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            IExample example = ObjectUtils.InstantiateType<IExample>(typeof(SimpleExample));
            example.Run().ConfigureAwait(false);
        }

最后看一下结果吧:我设置在输出台打印“HelloWord” 每隔5秒

好了以上就是Quartz的基本实现。

 

目录
相关文章
|
开发工具
【Quartz】定时器初步实验(一)
以前就了解了Quartz这个定时框架,但是一直没有认真的去关注他,最近忽然看到已经更新到3.0.4支持异步操作了所以就写个简单的小例子看看好用不。 第一步:创建项目 创建一个新项目,可以是ASP.NET MVC,WebForms,Winforms等多种.Net项目,这里使用的是VS2017,创建了一个MVC项目     创建完成后大致项目层级为:     第二部:引用 我们首先要在项目中引用Quartz.dll。
1236 0
|
前端开发 Java 调度
Quartz 定时器任务调度
Job:是一个接口只有一个方法void execute(JobExecutionContext context),开发者实现该接口定义运行任务,JobExecutionContext类提供了调度上下文的各种信息。Job运行时的信息保存在 JobDataMap实例中 第一种,作业类继承自特定的基  1.8测试成功,2.0不行类:org.springframework.scheduling.
1899 0
|
Java 调度 数据库
定时组件quartz系列<二>quartz的原理
Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。   一、核心概念   Quartz的原理不是很复杂,只要搞明白几个概念,然后知道如何去启动和关闭一个调度程序即可。   1、Job 表示一个工作,要执行的具体内容。
1015 0
|
Java 调度
Springboot 使用Quartz定时器执行多个定时任务 配置篇
Springboot 使用Quartz定时器执行多个定时任务 配置篇
842 0
Springboot 使用Quartz定时器执行多个定时任务 配置篇
|
存储 Java 数据库连接
定时组件quartz系列<二>quartz的集群原理
1、基本信息:      Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2Se和J2EE应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它 来为执行一个作业而创建简单的或复杂的调度。
1502 0
|
调度
Spring-quartz定时系统多任务配置
0 0 13 ? * WED 0 16 17 * * ? 2017 emailremind ...
941 0
|
C++ 容器
掌握C++定时器:构建自己的定时器的分步指南
本文是一份详细的、分步指南,旨在帮助读者掌握C++定时器的构建过程。通过本文,读者将了解到什么是定时器,以及为什么需要自己构建定时器而不仅仅使用标准库中的函数。文章将从基础开始,介绍了利用C++的基本语法和操作符创建一个简单的定时器的步骤。随后,文章逐渐深入,介绍了如何优化定时器的性能,包括减少延迟和提高精度。
651 0

热门文章

最新文章