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

【Quartz】定时器初步实验(一)以前就了解了Quartz这个定时框架,但是一直没有认真的去关注他,最近忽然看到已经更新到3.0.4支持异步操作了所以就写个简单的小例子看看好用不。第一步:创建项目创建一个新项目,可以是ASP.NE

大家好,又见面了,我是你们的朋友全栈君。

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

第一步:创建项目

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

 <span role="heading" aria-level="2">【Quartz】定时器初步实验(一)

 

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

 <span role="heading" aria-level="2">【Quartz】定时器初步实验(一)

 

第二部:引用

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

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

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

Install-Package Quartz

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

 <span role="heading" aria-level="2">【Quartz】定时器初步实验(一)

 

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

 <span role="heading" aria-level="2">【Quartz】定时器初步实验(一)

第三步:创建任务

我们添加一个任务类然后实现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秒

<span role="heading" aria-level="2">【Quartz】定时器初步实验(一)

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

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154481.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux hexdump显示格式c数组,hexdump命令

    linux hexdump显示格式c数组,hexdump命令hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。语法hexdump[选项][文件]…选项-nlength只格式化输入文件的前length个字节。-C输出规范的十六进制和ASCII码。-b单字节八进制显示。-c单字节字符显示。-d双字节十进制显示。-o双字节八进制显示。-x双字节十六进制显示。-s从偏移量开始输出。…

    2022年9月21日
    0
  • 字符数组初始化问题解法_字符数组和字符串的区别

    字符数组初始化问题解法_字符数组和字符串的区别在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式:(1)chara[10]=””; (2)chara[10]={‘\0′}; (3)chara[10];str[0]=’\0’;第1,2种方式是将a数组的所有元素都初始化为’\0’,而第3种方式是只将str数组的第一个元素初始化为’\0’。如果数组的size非常大,那么前两种方式…

    2022年8月31日
    2
  • cmd查看maven版本_maven获取最新版本

    cmd查看maven版本_maven获取最新版本cmd查看maven版本小技巧①键盘按下windows+Q②输入cmd③右击cmd以管理员身份运行④输入mvn-v或者mvn-version

    2022年8月22日
    30
  • 非同构无向图(同形同构)

    题目链接:http://codeforces.com/problemset/problem/103/B大意:判断图的形状是否为一个章鱼型(?)由几棵树构成,树的根节点围成一个环。思路:只需判断一棵树内加一个环即可。判断方法:边数==顶点数&&连通图#include#definemem(s,t)memset(s,t,sizeof(s))

    2022年4月13日
    217
  • 惠普台式电脑如何安装系统_hp服务器快速重装系统

    惠普台式电脑如何安装系统_hp服务器快速重装系统惠普在计算机行业是一个很有声誉的品牌,无论是台式机还是笔记本,惠普都是一款值得考虑和购买的品牌产品之一。但是当计算机系统出了问题需要重装系统时,很多人并不知道如何进行系统的重装,那么惠普的台式机如何进行重装系统呢?今天小编将为大家介绍惠普台式电脑装系统步骤。惠普台式电脑装系统步骤阅读1、打开浏览器搜索云骑士官网,找到云骑士官网并点击打开。2、在官网下载云骑士一键重装系统软件,下载后打开云骑士装机大…

    2022年8月13日
    1
  • mysql timestamp[通俗易懂]

    mysql timestamp[通俗易懂]一般建表时候,创建时间用datetime,更新时间用timestamp。这是非常重要的。【1】timestamp字段所在行更新时,timestamp字段会被更新成当前时间(1.1)一个表中出现了两

    2022年7月2日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号