将Quartz部署为Windows服务时,在配置中设置Cron触发器

时间:2015-03-24 10:13:51

标签: cron quartz-scheduler quartz.net

我已经将Quartz.net服务器设置为windows服务。我有一个使用它成功安排的工作。但这项工作每分钟都在运行。我想在每天上午11:00和晚上11:00安排工作。

但我不知道该怎么做。我有一个Quartz.Server.Config和一个jobs_xml文件。

请建议我设置此配置的位置以及相同的Cron表达式。

1 个答案:

答案 0 :(得分: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);