我已经使用 XML 作业配置定义了我的石英作业,如示例 2 所示
http://www.mkyong.com/java/example-to-run-multiple-jobs-in-quartz/
我有其他 servlet 有一些初始化参数,我的网络应用程序也有一些上下文参数。
如何在实现 Job 类的作业中访问这些参数?
我已经使用 XML 作业配置定义了我的石英作业,如示例 2 所示
http://www.mkyong.com/java/example-to-run-multiple-jobs-in-quartz/
我有其他 servlet 有一些初始化参数,我的网络应用程序也有一些上下文参数。
如何在实现 Job 类的作业中访问这些参数?
我在这里看到了几个选项。
创建一个持有人对象,该对象将仅保存您要在工作中访问的信息。
public class ConfigHolder {
static public Map importantData;
}
然后,您将使用servlet2
in itsinit
方法初始化数据。
像这样使用 JobDataMap 安排作业
JobDetail jd = new JobDetail("yourjob", Scheduler.DEFAULT_GROUP, JobClass.class);
jd.getJobDataMap().put("config", configObject);
1)基本上可以像这样访问servlet的上下文
在 web.xml 中
<context-param>
<param-name>quartz:scheduler-context-servlet-context-key</param-name>
<param-value>ServletContext</param-value>
</context-param>
在代码中
ServletContext MyServletContext = null;
MyServletContext = (ServletContext) context.getScheduler().getContext().get("ServletContext");
2)然后另一个servlet的参数是这样的
ServletContext.getServletRegistration("MyServlet").getInitParameter("MyInitParam");