文档章节

Quartz.Net的简单练习

朝如青丝暮成雪
 朝如青丝暮成雪
发布于 2017/01/18 13:58
字数 475
阅读 60
收藏 0

using Quartz;
using Quartz.Impl;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestAPP
{
    class Program
    {
        static void Main(string[] args)
        {
            //从工厂中获取一个调度器实例化
            IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
            //开启调度器
            scheduler.Start();

            //创建一个作业
            IJobDetail job1 = JobBuilder.Create<TestJob1>().WithIdentity("myJob1", "group1").Build();

            // define the job and tie it to our DumbJob class
            IJobDetail job2 = JobBuilder.Create<TestJob2>()
                .WithIdentity("myJob2", "group2") // name "myJob", group "group1"
                .UsingJobData("jobSays", "Hello World!")
                .UsingJobData("myFloatValue", 3.141f)
                .Build();


            //创建触发器   1秒触发一次   RepeatForever无限重复
            ITrigger tigger1 = TriggerBuilder.Create().WithIdentity("tiggerName1", "tiggerGroup1").WithSimpleSchedule
                (x => x.WithIntervalInSeconds(1).RepeatForever()).Build();

            //触发器 执行5次后暂停    WithRepeatCount重复几次后暂停
            ITrigger tigger2 = TriggerBuilder.Create().WithIdentity("tiggerName2", "tiggerGroup2").WithSimpleSchedule
                (x => x.WithIntervalInSeconds(1).WithRepeatCount(10)).Build();


            //更复杂的操作 cron-like表达式


            //把作业,触发器加入调度器。
            scheduler.ScheduleJob(job2, tigger2);

            scheduler.ScheduleJob(job1, tigger1);

        }
    }


    //需要执行的job 需要继承IJob  然后实现exc方法
    //加此特性头  表示执行完毕再触发
    [DisallowConcurrentExecution]
    class TestJob1 : IJob
    {
        static int ac = 0;
        static int ab = 0;
        public void Execute(IJobExecutionContext context)
        {
            //ac++;
            //Console.WriteLine("调用了" + ac);
            //Task.Delay(2000).Wait();
            ab++;
            Console.WriteLine("任务一调度成功了" + ab + "==一些信息");

        }
    }

    //需要执行的job 需要继承IJob  然后实现exc方法
    class TestJob2 : IJob
    {
        static int ac = 0;
        //请注意,Execute 方法接受一个 JobExecutionContext
        //对象作为参数。这个对象提供了作业实例的运行时上下文。特别地,它提供了对调度器和触发器的访问,这两者协作来启动作业以及作业的 JobDetail
        //对象的执行。Quartz.NET 通过把作业的状态放在 JobDetail 对象中并让 JobDetail
        //构造函数启动一个作业的实例,分离了作业的执行和作业周围的状态。JobDetail 对象储存作业的侦听器、群组、数据映射、描述以及作业的其他属性。
        public void Execute(IJobExecutionContext context)
        {
            //作业执行期间获得数据
            JobDataMap dataMap = context.JobDetail.JobDataMap;

            // Note the difference from the previous example
            JobDataMap dataMap1 = context.MergedJobDataMap;


            Console.WriteLine(dataMap.GetString("jobSays"));
            Console.WriteLine(dataMap1["myFloatValue"]);
            ac++;
            Console.WriteLine("任务二调度成功了" + ac);
        }
    }


}
 

© 著作权归作者所有

朝如青丝暮成雪
粉丝 9
博文 186
码字总数 85570
作品 0
浦东
程序员
私信 提问
仿照博客园搜索功能 找找看的实现 发现问题 杂谈

我记得在园子里有园友提出博客园的搜索功能是采用的Lucene.net,具体是不是我也不确定,但是宁可信其是,所以我在仿照博客园 搜索功能的时候采用的也是Lucene.net,有园友给我提意见,就是我以...

架构师郭郭
2012/12/30
0
0
Quartz.Net分布式任务管理平台(第二版)

前言:在Quartz.Net项目发布第一版后,有挺多园友去下载使用,我们通过QQ去探讨,其中项目中还是存在一定的不完善。所以有了现在这个版本。这个版本的编写完成其实有段时间了一直没有放上去。...

不明白的某某某
2018/07/24
0
0
用abp vNext快速开发Quartz.NET定时任务管理界面

今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发。大伙最好跟着一起敲一下代码,当然源码我会上传...

依乐祝
02/27
0
0
定时调度系列之Quartz.Net详解

一. 背景   我们在日常开发中,可能你会遇到这样的需求:"每个月的3号给用户发信息,提醒用户XXX "、"每天的0点需要统计前一天的考勤记录"、"每个月的1号计算上个月的库存情况"、"定时初始...

dotNET跨平台
2018/06/24
0
0
Spring.NET学习笔记25——整合Quartz.NET(应用篇) Level 200

Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于WinForm和ASP.NET应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作...

长平狐
2012/06/11
2.8K
0

没有更多内容

加载失败,请刷新页面

加载更多

使用TensorFlow的AI程序运行报错AttributeError: module 'tensorflow' has no attribute 'xxx'

使用TensorFlow的AI程序,在运行时报错AttributeError: module 'tensorflow' has no attribute 'xxx',首先检查是否是包路径不对,一般是版本变化所致。...

织梦之魂
30分钟前
2
0
提示浏览器版本低

本文转载于:专业的前端网站➭提示浏览器版本低 网站网页在遇到浏览器低版本(尤其是IE浏览器)时,提示浏览器版本低(如IE8以及以下),建议用户升级浏览器以获得最好体验。以下是代码: 1...

前端老手
31分钟前
4
0
CentOS 7系统增加swap

转载请注明文章出处:CentOS 7系统增加swap swap是位于磁盘上的特殊文件(或分区),属于“虚拟内存”的一部分。通俗点就是内存的备胎,内存充足的情况下,基本上没swap什么事(和设置有关)...

tlanyan
54分钟前
6
0
基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
今天
6
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部