需求描述:首页有一部分数据需要在某个时间段内每隔一分钟从数据库读出,首页的访问量太大,实时从数据库取很耗数据库资源,我的解决方案是:在首页通过几个 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();
分享到:
相关推荐
【C# Quartz.Net定时任务操作】Quartz.Net是一款强大的任务调度框架,广泛应用于C#环境下的定时任务管理。本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需...
【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...
总结起来,这个“C#基于Quartz任务调度系统”项目利用了Quartz.NET的强大功能,实现了灵活的定时任务调度,同时能够调用外部exe文件执行特定任务。由于在实际运行中表现出的高稳定性,这为我们提供了一个可靠的参考...
`Execute`方法是你自定义的代码,当触发器触发时,这个方法会被调用执行实际任务。你可以定义多个作业,每个作业可以有不同的行为。 2. **触发器(Trigger)**:触发器负责决定何时启动作业。Quartz.NET支持多种...
Quartz 是一个开源的作业调度框架,...总结,解决 "quartz 调用两次任务" 的问题需要对 Quartz 的工作原理有深入理解,并对代码、数据库、服务器配置进行细致的排查。通过上述步骤,通常能够找到问题所在并进行修复。
在Windows操作系统中,进程监控是一项重要的任务,它可以帮助我们了解系统的运行状态,找出资源占用...C#结合Quartz.NET的使用,不仅简化了定时任务的开发,还使得该任务易于集成到其他系统中,增加了代码的可复用性。
这个方法就是你的任务逻辑,当触发器触发时,Quartz.NET会调用这个方法执行任务。 ```csharp public class CancelOrderJob : IJob { public void Execute(IJobExecutionContext context) { // 超时取消订单的...
8. **代码实践**: C# QuartzDemo不仅包含了理论知识,还提供了实际的代码示例,这对于开发者学习如何在自己的项目中集成和使用Quartz.NET非常有帮助。 通过研究和理解这个C# QuartzDemo,开发者可以学习如何在.NET...
7. 定期检查:如果你想实时监控任务状态,可以设置一个定时任务定期调用上述逻辑,或者利用Quartz的事件监听机制,当Job开始或结束时接收通知。 总之,判断Quartz任务是否正在运行,主要依赖于Scheduler提供的接口...
2. 配置Quartz:在应用程序启动时,你需要配置一个`SchedulerFactory`实例,然后通过工厂获取`IScheduler`实例,进行任务调度的初始化。 3. 定义Job和Trigger:创建实现`IJob`接口的类来定义具体要执行的任务,然后...
QuartzTypeLib.IMediaControl接口是Quartz库提供的一种接口,允许开发者通过C#来调用底层的多媒体服务,实现对音频文件的控制。 要使用这个接口,首先需要在C#项目中引用Quartz库。这可以通过添加COM引用来完成,...
2. **定义Job**: 创建自定义的Job类,继承自`IJob`接口,并实现`Execute`方法,这是任务实际执行的代码逻辑。 3. **创建Trigger**: 根据需求定义触发器,比如使用`SimpleTrigger`或`CronTrigger`。`SimpleTrigger`...
如果你想要终止某个任务,你可以调用`scheduler.deleteJob()`来移除Job实例,使其不再执行。例如: ```java scheduler.pauseJob(JobKey.jobKey("myJob", "group1")); // 暂停Job scheduler.deleteJob(JobKey.jobKey...
Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,...这个QuartzDemo压缩包很可能是包含了一个简单的Quartz.Net应用实例,你可以解压后学习其结构和代码,以便更好地理解和使用这个强大的任务调度框架。
Quartz是一个开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java应用中,Quartz常被用来实现复杂的时间调度逻辑,比如定时发送邮件、执行数据同步等。在很多场景下,我们可能需要动态地修改任务的...
4. **启动调度器**:调用`Scheduler.start()`方法启动调度器,开始执行任务。 四、调度器API 1. **SchedulerFactory**:创建Scheduler的工厂类,通过`getScheduler()`获取Scheduler实例。 2. **Scheduler**:管理...
本资源聚焦于使用C#进行iPhone应用开发,通过一系列源代码实例,旨在帮助开发者掌握核心的iPhone应用程序设计与实现技巧。 首先,我们关注的是"触屏控制转换"。iPhone的触屏交互是其标志性特征之一,开发者需要理解...
9. **配置灵活性**:Quartz的配置非常灵活,可以通过XML、Java代码或API进行。这使得我们能够根据需求快速调整任务调度策略。 总的来说,通过熟练掌握Quartz的API和核心概念,我们可以实现定时任务的动态分组、串行...
4. 创建Scheduler:使用`StdSchedulerFactory`获取Scheduler实例。 5. 注册Job和Trigger:使用Scheduler的`scheduleJob(JobDetail, Trigger)`方法注册Job和Trigger。 6. 启动Scheduler:调用`start()`方法开始调度。...
默认情况下,Quartz会为每个Job实例创建一个新的线程,但我们可以自定义`ThreadPool`来控制并发度,比如限制同时运行的任务数量,或者设置线程池大小。 在实现过程中,注意避免过度的数据库交互,因为这可能影响...