我怀疑我在设置 Quartz .NET 配置文件时的疏忽让我目瞪口呆。我已经在论坛中搜索了类似的帖子,这篇帖子' quartz.net from config xml in asp.net '是最相关的,但不幸的是它没有帮助。我会很感激人们能想到的任何帮助或建议。
我正在尝试加载配置文件以使用 Quartz 版本 1 安排一些作业。我的 app.config 文件定义了 Quartz 配置:
<quartz>
<add key="quartz.scheduler.instanceName" value="QuartzScheduler" />
<!-- Configure Thread Pool -->
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="Normal" />
<!-- Configure Job Store -->
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz" />
<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.JobInitializationPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value="~/configuration/quartz_jobs.config" />
<add key="quartz.plugin.xml.scanInterval" value="10" />
</quartz>
然后我的quartz_jobs.config 文件定义了这些工作:
<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://quartznet.sourceforge.net/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0"
overwrite-existing-jobs="true">
<job>
<job-detail>
<name>jobName1</name>
<group>jobGroup1</group>
<description>jobDesciption1</description>
<job-type>FundDataImportScheduler.Jobs.FsdImportJob, FundDataImportScheduler</job-type>
<volatile>false</volatile>
<durable>true</durable>
<recover>false</recover>
</job-detail>
<trigger>
<cron>
<name>cronName1</name>
<group>cronGroup1</group>
<description>CronTriggerDescription</description>
<job-name>jobName1</job-name>
<job-group>jobGroup1</job-group>
<cron-expression>0 0/1 * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
请注意quartz_jobs.config 文件中的节点。我正在尝试加载实现 IJob 的类:
public class FsdImportJob : IJob
{
public void Execute(JobExecutionContext context)
{
Console.WriteLine("FsdImportJob triggered");
}
}
我遇到的问题是,当节点等于“FundDataImportScheduler.Jobs.FsdImportJob,FundDataImportScheduler”时,未加载作业。如果我在节点中使用“Quartz.Job.NativeJob,Quartz”的值进行测试,则会加载一个作业(虽然不是我想要的)。
FundDataImportScheduler.Jobs.FsdImportJob 是 FsdImportJob 类的确切命名空间,FundDataImportScheduler 是它编译成的 dll。
为了完整起见,我用来构建 Quartz SchedulerFactory 并加载配置的代码是:
ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
IScheduler scheduler = schedulerFactory.GetScheduler();
scheduler.Start();
我将不胜感激任何关于我哪里出错的指示。
非常感谢,
赤马