Quartz.net作业每天在给定时间以毫秒间隔启动

Quartz.net作业每天在给定时间以毫秒间隔启动,quartz.net,Quartz.net,我正在试用Quartz.net,它可能会解决我的一个问题。然而,我似乎找不到一种方法在一天中的某个给定时间(07:30)启动一个作业,以毫秒(1)为间隔运行若干次(1000次) 我尝试了一个CronSchedule,但无法设置间隔。使用SimpleSchedule时,无法设置开始时间,而使用DailyTimeIntervalsSchedule时,我无法以毫秒为单位设置间隔。我还尝试将varoius的设置与fluent api结合起来,但没有效果 在Quartz.net中,我试图实现的目标实际上是

我正在试用Quartz.net,它可能会解决我的一个问题。然而,我似乎找不到一种方法在一天中的某个给定时间(07:30)启动一个作业,以毫秒(1)为间隔运行若干次(1000次)

我尝试了一个CronSchedule,但无法设置间隔。使用SimpleSchedule时,无法设置开始时间,而使用DailyTimeIntervalsSchedule时,我无法以毫秒为单位设置间隔。我还尝试将varoius的设置与fluent api结合起来,但没有效果


在Quartz.net中,我试图实现的目标实际上是不可能的吗

这可能就是你想要的:

IJobDetail theJobToRun = JobBuilder.Create<NoOpJob>().Build();
var trigger = TriggerBuilder.Create()
                        .StartAt(DateBuilder.DateOf(7, 30, 0))
                        .WithSimpleSchedule(x => x
                                        .WithInterval(TimeSpan.FromMilliseconds(1))
                                        .WithRepeatCount(999))
                        .ForJob(theJobToRun)
                        .Build();
ijobDetailthejobtorun=JobBuilder.Create().Build();
var trigger=TriggerBuilder.Create()
.StartAt(DateBuilder.DateOf(7,30,0))
.使用SimpleSchedule(x=>x
.WithInterval(时间跨度从毫秒(1))
.WithRepeatCount(999))
.ForJob(jobtorun)
.Build();

正如Sgmore所指出的,您可能无法获得毫秒精度,因为您的线程池将被作业饱和,这完全取决于它们完成了多少工作。Quartz.NET基础设施也会花费自己的时间来观察启动时间和实例化作业。

您真的想在一秒钟内以毫秒间隔运行作业1000次吗?您是否尝试过测试Quartz.net是否可以以这种速度执行作业?我假设可以,因为可以使用SimpleSchedule设置以毫秒为单位的间隔,但我还没有对其进行基准测试或其他任何测试来查看实际性能。这是一个“简单”的负载测试。难道不是吗。用RepeatCount(999)?解决了这个问题。感谢Marko Lahma@sgmoore,你的权利999千处决。也谢谢你!我不知道Quartz的旧版本是否支持它,但是更新版本()DateBuilder.DateOf api:获取一个日期对象,该对象表示给定的时间,即今天的日期(相当于todayAt(int,int,int))。因此,今天只运行,而不是每天运行。所以这是错误的!