Quartz.Net 2.0 bate1 使用

下载后发现在XP下无法使用
安装,编译后找到生成目录在命令行下运行下面的命令进行安装与卸载
按照:>  Quartz.Server.exe install

卸载:>  Quartz.Server.exe uninstall

说明,需要注意保证开发用的Quartz.dll与windows服务的Quarz.dll是同一个版本的

模块:Quartz.Server中使用topShelf来实现Windows服务的集成
参考:http://www.cnblogs.com/shanyou/archive/2011/05/04/2037008.html

模块:Quartz.Server中使用了Common.Logging作为日志接口,
使用Common.Logging目的是解藕应用程序与log4net,EntLib等日志组件。
参考:http://www.cnblogs.com/wucg/archive/2010/07/26/1784924.html
       http://www.cnblogs.com/wdfrog/archive/2010/05/14/1735300.html

Windows事件类型注册工具:


(图1)

(图2)

============下载===============

配置文件示例:

<?xml version="1.0" encoding="utf-8" ?><configuration>	<configSections>		<section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />	        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />		<sectionGroup name="common">			<section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />		</sectionGroup>	</configSections>        <connectionStrings>        <add name="JL_MFGContext" providerName="System.Data.SqlClient" connectionString="Data Source=192.168.1.7;Initial Catalog=JL_MFG;UID=sa;PWD=xxxx;" />        </connectionStrings>   	<common>		<logging>			<factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net">				<arg key="configType" value="INLINE" />			</factoryAdapter>		</logging>	</common>	<log4net>		<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">                        <LogName value="Quartz任务日志" />                        <ApplicationName value="Quartz任务日志" />			<layout type="log4net.Layout.PatternLayout">				<conversionPattern value="%d [%t] %-5p %l - %m%n" />			</layout>		</appender>                <appender name="ProductBatchAnalysisLogAppender" type="log4net.Appender.EventLogAppender">                        <LogName value="Quartz任务日志" />                        <ApplicationName value="成品材料分析" />			<layout type="log4net.Layout.PatternLayout">				<conversionPattern value="%d [%t] %-5p %l - %m%n" />			</layout>		</appender>              		<root>			<level value="INFO" />			<appender-ref ref="EventLogAppender" /> 		</root>        <logger name="ProductBatchAnalysis" additivity="false">			<level value="DEBUG" />			<appender-ref ref="ProductBatchAnalysisLogAppender" />		</logger>	</log4net>  <!--     We use quartz.config for this server, you can always use configuration section if you want to.    Configuration section has precedence here.    -->	<!--  <quartz >  </quartz>  --></configuration>

上面将Quartz.Server与ProductBatchAnalysis分成了两个事件源"Quartz任务日志"与"成品材料分析",
写入同一个LogName为"Quartz任务日志"的日志文件中(参考上面的图1)
<logger>节点使用additivity="false"来屏蔽root的EventLogAppender的影响(避免一个LogEntity写两次)

实现的IJob代码

  [DisallowConcurrentExecution()]   public class ProductBatchAnalysis :IJob    {        private static readonly ILog logger = LogManager.GetLogger(typeof(ProductBatchAnalysis).Name ); //或者GetLogger("ProductBatchAnalysis")        private JL_MFGContext _DBCtx;        private JL_MFGContext DBCtx        {            get            {                if(_DBCtx==null)                {                    _DBCtx=new JL_MFGContext();                }                return _DBCtx;            }        }        public void Execute(IJobExecutionContext context)        {                        try            {                logger.Debug("成品批次分析任务开始");                DBCtx.sim_Log.Add(new sim_Log                {                    AddTime = DateTime.Now,                    Content = "新加的动动!",                    ExperimentId = 88                });                DBCtx.SaveChanges();                logger.Debug("成品批次分析任务结束!");            }            catch (Exception ex)            {                logger.Error(ex);                #region 抛出错误给Quartz                JobExecutionException toThrow = new JobExecutionException(ex);                toThrow.RefireImmediately = false;                toThrow.UnscheduleFiringTrigger = false;                toThrow.UnscheduleAllTriggers = false;                throw toThrow;                #endregion            }                                            }      }

Quartz.net  Jobs文件配置

<?xml version="1.0" encoding="UTF-8"?><!-- This file contains job definitions in schema version 2.0 format --><job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0">  <processing-directives>    <overwrite-existing-data>true</overwrite-existing-data>  </processing-directives>  <schedule>    <job>        <name>ProductBatchAnalysis</name>        <group>ProductBatchAnalysis-Group</group>        <description>Sample job for Quartz Server</description>        <job-type>MFGJobs.ProductBatchAnalysis,MFGJobs</job-type>        <durable>true</durable>        <recover>false</recover>    </job>        <trigger>      <cron>        <name>cronName2</name>        <group>cronGroup2</group>        <job-name>ProductBatchAnalysis</job-name>        <job-group>ProductBatchAnalysis-Group</job-group>        <start-time>1982-06-28T18:15:00+02:00</start-time>        <cron-expression>0/10 * * ? * *</cron-expression>      </cron>    </trigger>  </schedule></job-scheduling-data>

上面使用了Cron表达式 ,
参考:http://www.cnblogs.com/wdfrog/archive/2011/06/27/2091404.html
      http://www.cnblogs.com/zhangronghua/archive/2009/10/21/1376431.html
     

文件结构:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值