【问题标题】:Setting Cron trigger in config when Quartz is deployed as windows service将 Quartz 部署为 Windows 服务时在配置中设置 Cron 触发器
【发布时间】:2015-05-27 14:24:33
【问题描述】:
我已将 Quartz.net 服务器设置为 Windows 服务。我有一个使用它成功安排的作业。但是这个作业每分钟都在运行。我想把工作安排在每天上午 11:00 和晚上 11:00。
但我不知道该怎么做。我有一个 Quartz.Server.Config 和一个 jobs_xml 文件。
请建议我在哪里设置此配置以及相同的 Cron 表达式。
【问题讨论】:
标签:
cron
quartz-scheduler
quartz.net
【解决方案1】:
您可以通过两种方式配置您的工作计划。一种是通过你的jobs_xml文件,你需要在其中添加触发器信息:
<job>
<name>jobName</name>
<group>simpleGroup</group>
<!-- other settings -->
</job>
<trigger>
<simple>
<name>triggerName</name>
<group>simpleGroup</group>
<description>SimpleTriggerDescription</description>
<job-name>jobName</job-name>
<job-group>jobGroup</job-group>
<misfire-instruction>SmartPolicy</misfire-instruction>
<cron-expression>0 0 11,23 * * ?</cron-expression> <!-- fire every day at 11:00 and 23:00 -->
</simple>
</trigger>
或者通过调度程序以编程方式:
IJobDetail job = JobBuilder.Create(this.GetType())
.WithIdentity("JobName")
.Build();
ITrigger strigger = TriggerBuilder.Create()
.WithIdentity("trigger7", "group1")
.StartAt(DateBuilder.DateOf(11, 0, 0))
.WithSimpleSchedule(x => x
.WithIntervalInHours(12)
.RepeatForever())
.Build();
scheduler.ScheduleJob(detail, trigger);