重复发帖浪费分数,让讨论焦点分散,不可取resumeJobGroup的API解释说了(错过的触发,将在恢复时重新执行): If any of the Job'sTrigger s missed one or more fire-times, then the Trigger's misfire instruction will be applied.所以我想你应该用standby()会更合适(但这个影响是全局性的): When start() is called (to bring the scheduler out of stand-by mode), trigger misfire instructions will NOT be applied during the execution of the start() method - any misfires will be detected immediately afterward (by the JobStore's normal process).或者用unscheduleJob()将这个任务撤掉。 顺带说一句:在你这个例子里面,pauseJobGroup() 跟 pauseTriggerGroup() 重复,因为pauseJobGroup实际上也是暂停它的triggers: Pause all of the JobDetails in the given group - by pausing all of their Triggers.
If any of the Job'sTrigger s missed one or more fire-times, then the Trigger's misfire instruction will be applied.所以我想你应该用standby()会更合适(但这个影响是全局性的):
When start() is called (to bring the scheduler out of stand-by mode), trigger misfire instructions will NOT be applied during the execution of the start() method - any misfires will be detected immediately afterward (by the JobStore's normal process).或者用unscheduleJob()将这个任务撤掉。
顺带说一句:在你这个例子里面,pauseJobGroup() 跟 pauseTriggerGroup() 重复,因为pauseJobGroup实际上也是暂停它的triggers:
Pause all of the JobDetails in the given group - by pausing all of their Triggers.
1.在job里加过锁如果处理这那其他的就不能再处理了 但是也不是好的解决方式啊
2.利用JobExecutionContext传递参数 但是因为我写好封装 其他人只需要提供job实现类就可以了,通过xml配置让其运行,如果采用这样的方式其他人就有点麻烦了。
的问题,结果改为
striger.setStartTime(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").paere(new Date()));
竟然好了
在配置Quartz的时候有这样一句,
<add key="quartz.jobStore.misfireThreshold" value="60000"/>
注释掉这个就不会出现多次调用了。
上代码 <quartz>
<add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzScheduler"/>
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/>
<add key="quartz.threadPool.threadCount" value="1"/>
<add key="quartz.threadPool.threadPriority" value="2"/>
<!--<add key="quartz.jobStore.misfireThreshold" value="60000"/>-->
<add key="quartz.jobStore.type" value="Quartz.Simpl.RAMJobStore, Quartz"/>
<!--******************************Plugin配置********************************************* -->
<!--<add key="quartz.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz" />
<add key="quartz.plugin.xml.fileNames" value=""/>-->
</quartz>
public class HelloJob : IJob
{
public void Execute(IJobExecutionContext context)
{
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.mmm"));
}
}
class Program
{
static void Main(string[] args)
{
var jobkey = JobKey.Create("job1", "job-group1");
IJobDetail addJob = JobBuilder.Create<HelloJob>().WithIdentity(jobkey).Build(); ITrigger trigger = TriggerBuilder.Create().WithIdentity("trigger1", "trigger-group1")
.WithSimpleSchedule(x => x.WithIntervalInSeconds(1).RepeatForever()).Build(); var factory = new StdSchedulerFactory();
var scheduler = factory.GetScheduler(); scheduler.ScheduleJob(addJob, trigger); scheduler.Start(); Thread.Sleep(TimeSpan.FromSeconds(10));
scheduler.DeleteJob(jobkey); Console.WriteLine("--------------------------------"); Thread.Sleep(TimeSpan.FromSeconds(2));
scheduler.ScheduleJob(addJob, trigger); Thread.Sleep(TimeSpan.FromSeconds(10));
scheduler.Shutdown(); Console.ReadKey();
}
}