`
hcyoo
  • 浏览: 21436 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

C#调用Quartz实例代码

    博客分类:
  • .net
阅读更多
需求描述:首页有一部分数据需要在某个时间段内每隔一分钟从数据库读出,首页的访问量太大,实时从数据库取很耗数据库资源,我的解决方案是:在首页通过几个 include 小html文件,这里只需要用Quartz每隔一分钟从数据库读出这些数据并生成HTML代码. 代码如下:

using Quartz.Listener;
using Quartz;
using System.Collections;
using Model;
using System.Collections.Generic;
using System.Text;
using System.IO;
using Quartz.Impl;
using System;

namespace DataBLL
{
    public class CustomJob : IJob
    {
        public void Execute(JobExecutionContext context)
        {
            try
            {
                ProcesIndex.IndexDDE();//
                LogHelper.WriteLog(DateTime.Now.ToLongTimeString() + "执行更新成功");
            }
            catch (Exception e)
            {
                LogHelper.WriteLog(DateTime.Now.ToLongTimeString()+"执行更新首页数据失败!\n"+e.Message);
            }
            
        }
    }


    public class MyTriggerRunner
    {
        public virtual void Run()
        {
            //获取一个调度工厂
            ISchedulerFactory sf = new StdSchedulerFactory();
            IScheduler sched = sf.GetScheduler();
            
            //System.DateTime ts = TriggerUtils.GetNextGivenSecondDate(null, 15);

            JobDetail job = new JobDetail("job1", "group1", typeof(CustomJob));
            //SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1");
            CronTrigger trigger = new CronTrigger("trigger1", "group1", "job1", "group1");
            ////设定启动时间
            //trigger.StartTime = ts;
            ////设置每隔10秒运行
            //trigger.RepeatInterval = 10000;
            ////设置总共运行次数
            //trigger.RepeatCount = 100;
           
            //表达式表示:每周一至周五早上九点至下午三点之间每分钟执行一次            
            trigger.CronExpressionString = "0 0/1 9-15 * * ?";
            
            sched.AddJob(job, true);
            DateTime ft = sched.ScheduleJob( trigger);
            //启动作业调度任务
            sched.Start();
        }
    }
}
}


还需要最重要的一步,在main方法里调用 MyTriggerRunner.run();
1
0
分享到:
评论

相关推荐

    C# Quartz.Net定时任务操作明细、完整过程

    【C# Quartz.Net定时任务操作】Quartz.Net是一款强大的任务调度框架,广泛应用于C#环境下的定时任务管理。本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需...

    C# 控制台Quartz定时任务.doc

    【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...

    C#基于Quartz任务调度系统

    总结起来,这个“C#基于Quartz任务调度系统”项目利用了Quartz.NET的强大功能,实现了灵活的定时任务调度,同时能够调用外部exe文件执行特定任务。由于在实际运行中表现出的高稳定性,这为我们提供了一个可靠的参考...

    Quartz.net(C#版本)DLL程序包

    `Execute`方法是你自定义的代码,当触发器触发时,这个方法会被调用执行实际任务。你可以定义多个作业,每个作业可以有不同的行为。 2. **触发器(Trigger)**:触发器负责决定何时启动作业。Quartz.NET支持多种...

    quartz 调用两次任务

    Quartz 是一个开源的作业调度框架,...总结,解决 "quartz 调用两次任务" 的问题需要对 Quartz 的工作原理有深入理解,并对代码、数据库、服务器配置进行细致的排查。通过上述步骤,通常能够找到问题所在并进行修复。

    windows版本的进程监控,C#基于多线程Quartz实现,每10秒监测一次.zip

    在Windows操作系统中,进程监控是一项重要的任务,它可以帮助我们了解系统的运行状态,找出资源占用...C#结合Quartz.NET的使用,不仅简化了定时任务的开发,还使得该任务易于集成到其他系统中,增加了代码的可复用性。

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    这个方法就是你的任务逻辑,当触发器触发时,Quartz.NET会调用这个方法执行任务。 ```csharp public class CancelOrderJob : IJob { public void Execute(IJobExecutionContext context) { // 超时取消订单的...

    C# QuartzDemo

    8. **代码实践**: C# QuartzDemo不仅包含了理论知识,还提供了实际的代码示例,这对于开发者学习如何在自己的项目中集成和使用Quartz.NET非常有帮助。 通过研究和理解这个C# QuartzDemo,开发者可以学习如何在.NET...

    Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了

    7. 定期检查:如果你想实时监控任务状态,可以设置一个定时任务定期调用上述逻辑,或者利用Quartz的事件监听机制,当Job开始或结束时接收通知。 总之,判断Quartz任务是否正在运行,主要依赖于Scheduler提供的接口...

    Quartz 定时WebForm和WinForm使用的dll

    2. 配置Quartz:在应用程序启动时,你需要配置一个`SchedulerFactory`实例,然后通过工厂获取`IScheduler`实例,进行任务调度的初始化。 3. 定义Job和Trigger:创建实现`IJob`接口的类来定义具体要执行的任务,然后...

    C# 用quartz库播放MP3歌曲

    QuartzTypeLib.IMediaControl接口是Quartz库提供的一种接口,允许开发者通过C#来调用底层的多媒体服务,实现对音频文件的控制。 要使用这个接口,首先需要在C#项目中引用Quartz库。这可以通过添加COM引用来完成,...

    Quartz3.0.1.0调用

    2. **定义Job**: 创建自定义的Job类,继承自`IJob`接口,并实现`Execute`方法,这是任务实际执行的代码逻辑。 3. **创建Trigger**: 根据需求定义触发器,比如使用`SimpleTrigger`或`CronTrigger`。`SimpleTrigger`...

    Quartz调度、终止执行的任务

    如果你想要终止某个任务,你可以调用`scheduler.deleteJob()`来移除Job实例,使其不再执行。例如: ```java scheduler.pauseJob(JobKey.jobKey("myJob", "group1")); // 暂停Job scheduler.deleteJob(JobKey.jobKey...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,...这个QuartzDemo压缩包很可能是包含了一个简单的Quartz.Net应用实例,你可以解压后学习其结构和代码,以便更好地理解和使用这个强大的任务调度框架。

    使用quartz实现不重启服务器修改自定义配置的示例

    Quartz是一个开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java应用中,Quartz常被用来实现复杂的时间调度逻辑,比如定时发送邮件、执行数据同步等。在很多场景下,我们可能需要动态地修改任务的...

    Quartz教程中文版

    4. **启动调度器**:调用`Scheduler.start()`方法启动调度器,开始执行任务。 四、调度器API 1. **SchedulerFactory**:创建Scheduler的工厂类,通过`getScheduler()`获取Scheduler实例。 2. **Scheduler**:管理...

    iPhone_C#开发源代码

    本资源聚焦于使用C#进行iPhone应用开发,通过一系列源代码实例,旨在帮助开发者掌握核心的iPhone应用程序设计与实现技巧。 首先,我们关注的是"触屏控制转换"。iPhone的触屏交互是其标志性特征之一,开发者需要理解...

    定时任务quartz实现分组串行并行动态配置

    9. **配置灵活性**:Quartz的配置非常灵活,可以通过XML、Java代码或API进行。这使得我们能够根据需求快速调整任务调度策略。 总的来说,通过熟练掌握Quartz的API和核心概念,我们可以实现定时任务的动态分组、串行...

    小议时序调度Timer和Quartz

    4. 创建Scheduler:使用`StdSchedulerFactory`获取Scheduler实例。 5. 注册Job和Trigger:使用Scheduler的`scheduleJob(JobDetail, Trigger)`方法注册Job和Trigger。 6. 启动Scheduler:调用`start()`方法开始调度。...

    实现动态管理的quartz定时任务

    默认情况下,Quartz会为每个Job实例创建一个新的线程,但我们可以自定义`ThreadPool`来控制并发度,比如限制同时运行的任务数量,或者设置线程池大小。 在实现过程中,注意避免过度的数据库交互,因为这可能影响...

Global site tag (gtag.js) - Google Analytics