C#使用quartz.net定时问题
因工作需要需要完成定时查询数据。。因此在了解之后完成了一个demo
所需要的dll在该地址下载
http://pan.baidu.com/s/1sjNQLXV
首先引入quartz这个dll。。。
在Quartz.NET有一个叫做quartz.properties的配置文件,它允许你修改框架运行时环境。缺省是使用Quartz.dll里面的quartz.properties文件。当然你可以在应用程序配置文件中做相应的配置
ps:当然。由于本人是水平有限。上面那段话是复制别人的。我没去管那个什么配置文件,为了省事,就修改了配置文件。
<configSections>
<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
<sectionGroup name="common">
<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging"/>
</sectionGroup>
</configSections>
<common>
<logging>
<factoryAdapter type="Common.Logging.Simple.ConsoleOutLoggerFactoryAdapter, Common.Logging">
<arg key="showLogName" value="true"/>
<arg key="showDataTime" value="true"/>
<arg key="level" value="INFO"/>
<arg key="dateTimeFormat" value="HH:mm:ss:fff"/>
</factoryAdapter>
</logging>
</common>
<quartz>
<add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzScheduler" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key=" />
<add key=" />
<add key=" />
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
</quartz>
当然。这是需要引入common.logging和C5这两个dll的。。
具体这两个dll的作用我也没搞清。。等俺明白了再重新编辑。。
配置文件配置完成之后。。
编写一个继承Quartz.IJob的类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Diagnostics;
using System.Runtime.InteropServices;
using Common.Logging;
using Quartz;
namespace WebDemo
{
public class quartz : Quartz.IJob
{
private static ILog _log = LogManager.GetLogger(typeof(quartz));
public void Execute(Quartz.IJobExecutionContext context)
{
Test();
}
/// <summary>
/// 打开dos界面
/// </summary>
private void Test()
{
System.Diagnostics.Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.CreateNoWindow = false;
p.Start();
//这行命令式关机命令
//p.StandardInput.WriteLine("shutdown -s -t 0");
//p.StandardInput.WriteLine("exit");
p.Close();
}
}
}
然后我在Global类的Application_Start方法调用该类
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
Quartz.ISchedulerFactory sf = new Quartz.Impl.StdSchedulerFactory();
sched = sf.GetScheduler();
Quartz.JobKey jobkey = new Quartz.JobKey("myjob", "mygroup");
Quartz.IJobDetail job = Quartz.JobBuilder.Create<WebDemo.quartz>().WithIdentity(jobkey).Build();
//比较复杂的应用
Quartz.Spi.IOperableTrigger trigger = new Quartz.Impl.Triggers.CronTriggerImpl("trigName", "group1", "0 31 10 ? * WED ");
sched.ScheduleJob(job, trigger);
sched.Start();
}
"0 31 10 ? * WED "这个的意思是每到周三的早上10点31分0秒就自动执行。。dos窗口就自动打开。。但是前提是。。程序必须运行着。。没有关闭。。否则没有任何意义。。。
void Application_End(object sender, EventArgs e)
{
// Code that runs on application shutdown
// 在应用程序关闭时运行的代码
if (sched != null)
{
sched.Shutdown(true);
}
}
关于具体定时的格式可参考:
http://blog.csdn.net/weinierbian/article/details/6237337
同时也可在这学习:
http://www.cnblogs.com/shanyou/archive/2007/08/25/quartznettutorial.html
C#使用quartz.net定时问题的更多相关文章
- 用abp vNext快速开发Quartz.NET定时任务管理界面
今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发.大伙最好跟着一起敲一下代码,当然源码 ...
- spring和Quartz的定时功能
一:前沿 最近在做一个定时的功能,就是在一定时间内查询订单,然后告诉用户未付款,已付款等消息通知,而且要做集群的功能,这个集群的功能是指,我部署两套代码,其中一个定时的功能在运行,另外一个就不要运行. ...
- Hosted Services+Quartz实现定时任务调度
背景 之前.net core使用quartz.net时,总感觉非常变扭,百度和谷歌了N久都没解决以下问题,造成代码丑陋,非常不优雅: 1.项目启动时,要立刻恢复执行quartz.net中的任务 2.q ...
- spring结合quartz的定时的2种方式
1. Spring 的org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean类,使用此方法使开发人员对Quar ...
- 用Quartz处理定时执行的任务
这次做的项目中,有一部分功能需要实现定时执行.呃,这样说可能有点笼统,打个比方吧.例如用户在登录的时候,连续输错3次密码后,系统会将该用户冻结,不再允许该用户登录系统,等到了晚上零晨时分,再为所有被冻 ...
- Quartz.net 定时任务在IIS中未按时执行
IIS 垃圾回收机制下解决Quartz.net 的不执行问题 IIS中涉及了垃圾回收机制,quartz.net 在ASP.NET 项目中可以实现线程监控定时执行任务,但是在IIS7.5机一下版本中涉及 ...
- Quartz.net 定时计划使用
新建解决方案和工程Quartz.net 使用Power Shell 命令 Install-Package Quartz 导入Quartz.net程序集 新建一个计划TestJob using Syst ...
- 利用quartz实现定时调度
1.Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.这里我介绍quartz的两种方式.我这里搭建 ...
- quartz实现定时功能实例详解(servlet定时器配置方法)
Quartz是一个完全由java编写的开源作业调度框架,下面提供一个小例子供大家参考,还有在servlet配置的方法 Quartz是一个完全由java编写的开源作业调度框架,具体的介绍可到http:/ ...
随机推荐
- Jmeter性能测试入门(转)
出处:http://www.cnblogs.com/by-dream/p/5611555.html Jmeter性能测试步骤 1. 添加线程组之后,先设置这两项: 2. 添加一个http请求 被测的u ...
- Android中的数据保存
形式 Android的数据保存分为3种形式:file, SharedPreference, Database 文件 主要思想就是通过Context类中提供的openFileInput和openFile ...
- Redis 3.0.0 集群部署
简述: 1.0.1:redis cluster的现状 目前redis支持的cluster特性 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot reshardi ...
- 转 从腾讯那“偷 了”3000万QQ用户数据
http://www.icaijing.com/hot/article4899809/ http://news.cnblogs.com/n/533061/
- 对vector<int>进行快速排序
#include <iostream>#include <string>#include <vector>using namespace std;void Quic ...
- vs2012 opencv 配置
一直没有学习C++,以为该语言太过old,所以要学习新的咚咚.一番学习归来,在进行OpenCV的时候,还是要用到这个C++.几次琢磨,终于能够配置好相关的开发环境和问题初步处理,有些内容得赶快记录下来 ...
- Highcharts指南
摘要 Highcharts图表控件是目前使用最为广泛的图表控件.本文将从零开始逐步为你介绍Highcharts图表控件.通过本文,你将学会如何配置Highcharts以及动态生成Highchart图表 ...
- Arraylist<E>
ArrayList 应该是大部分人接触JCF之后, 第一个熟悉和使用的类.它的特点主要有一下几个: 1. 基于数组 public ArrayList(int initialCapacity) { if ...
- BackgroundWorker组件的作用
当构建一个图形化的Windows Form桌面应用程序并且需要执行在应用程序主UI线程之外的线程中长时间的任务时,BackgroundWorker类就很有用了. 要使用BackgroundWorker ...
- win7 解决IE浏览器不能打开网页的问题
网络连接和网络映射正常,ping命令正常,但是无法上网. 以管理员身份运行命令行,在弹出的窗口中运行如下命令: netsh winsock reset catalog netsh int ip res ...