1、Quartz区分NET3.5和NET4.0版本,故新建项目的时候,引用的DLL一定要匹配net freamwork的正确版本。
2、Quartz.dll 依赖于Common.Logging.dll 故也需要将这个DLL程序集引用到项目中。
以下是本人学习Quartz.net的DEMO:http://files.cnblogs.com/zfanlong1314/IBO.XJMYQP.WindowsServices.zip
说明:
IBO.XJMYQP.JobServices 为Topshelf方式。
IBO.XJMYQP.WindowsServices 为windows 服务方法。
3、Quartz.Net中设置的时间触发比需要的时间长,引起的重复触发。(举个栗子,比如每间隔一秒触发执行一个方法,而执行方法需要10秒钟)
Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞。
解决办法:
给你的Job类加上[DisallowConcurrentExecution]标记
[DisallowConcurrentExecution]
[PersistJobDataAfterExecution()]
public class SyncGasBottlesJob : IJob
{
}
需要做一个简易的Cron字符串生成器,并且要获取生成的Cron后面10次的触发时间来验证。