我在java web应用程序中使用Quartz调度程序 我的问题是How to pass instance variables into Quartz job
的扩展我按照上面帖子中的接受回答&可以将实例变量传递给我的石英作业。但是在重新启动Web服务器之后,传递的实例变量不会被保留(即,它为空)
public class SimpleJob implements Job {
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
SchedulerContext schedulerContext = null;
try {
schedulerContext = context.getScheduler().getContext();
} catch (SchedulerException e1) {
e1.printStackTrace();
}
ExternalInstance externalInstance =
(ExternalInstance) schedulerContext.get("ExternalInstance");
System.out.println(externalInstance); //Will print "null" after web server restart
float avg = externalInstance.calculateAvg();
}
}
我如何保留" ExternalInstance"甚至在Web服务器重启后?
非常感谢你。
答案 0 :(得分:0)
您可以在您的网络项目中添加ServletContextListener
,在contextInitialized()
上,您可以将externalInstance
添加到SchedulerContext
。这样,每次服务器重新启动时都会加载它。