1
如何创建Quartz Scheduler作业,在给定的时间量后自动终止(如果正在运行的作业需要太多时间)?石英调度程序作业自动终止
如何创建Quartz Scheduler作业,在给定的时间量后自动终止(如果正在运行的作业需要太多时间)?石英调度程序作业自动终止
石英调度程序没有内置的功能来在给定的时间量之后自行中断作业。
如果您不想中断作业(请参阅InterruptableJob接口)手动(例如与rmi),您可以轻松地建立这样的自动终止。
或者:
要停止作业内部的作业,最简单的方法是在特定时间后抛出异常。例如:
public class MyJob : IJob
{
Timer _t;
public MyJob()
{
TimeSpan maxRunningTime = TimeSpan.FromMinutes(1);
_t = new Timer(delegate { throw new JobExecutionException("took to long"); }, null, (int) maxRunningTime.TotalMilliseconds,
-1);
}
public void Execute(IJobExecutionContext context)
{
// do your word
// destroy T before leaving
_t = null;
}
}
希望它能帮助:)