springプロファイルで構成されているタイマを手動で変更および起動します.
3267 ワード
1、業務処理クラスの作成
2、springプロファイルにタイマーを配置する
3、controllerコードでmapオブジェクトを取得し、タイマ情報を変更して起動する
注意:以上のscheMapはプロファイルから取得され、spring注入により取得できます.たとえば、
スプリングプロファイルを自分で読み込むこともできます
public class TaskTestAction
{
public void run()
{
System.out.println(" ");
}
}
2、springプロファイルにタイマーを配置する
<!-- -->
<bean id="testTask" class="com.wkx.warning.controller.TaskTestAction"></bean>
<!-- -->
<bean id="testDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="testTask" />
</property>
<property name="targetMethod">
<value>run</value>
</property>
</bean>
<!-- , -->
<bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref bean="testDetail" />
</property>
<!-- , -->
<property name="repeatInterval">
<value>5000</value>
</property>
</bean>
<!-- -->
<bean id="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="testTrigger" />
</list>
</property>
<property name="autoStartup" value="false"/>
<property name="quartzProperties">
<props>
<prop key="org.quartz.threadPool.threadCount">2</prop>
</props>
</property>
</bean>
<!-- MAP , -->
<bean name="testMap" class="java.util.HashMap">
<constructor-arg>
<map>
<entry key="testScheduler" value-ref="testScheduler" />
</map>
</constructor-arg>
</bean>
3、controllerコードでmapオブジェクトを取得し、タイマ情報を変更して起動する
// scheMap spring
Scheduler std = scheMap.get("testScheduler");
//
SimpleTrigger t = (SimpleTrigger)std.getTrigger("testTrigger", Scheduler.DEFAULT_GROUP);
//
t.setRepeatInterval(10000);
//
std.rescheduleJob("testTrigger", Scheduler.DEFAULT_GROUP, t);
std.start();
注意:以上のscheMapはプロファイルから取得され、spring注入により取得できます.たとえば、
@Resource(name = "testMap")
private Map<String, Scheduler> scheMap;
スプリングプロファイルを自分で読み込むこともできます
ApplicationContext ac = new FileSystemXmlApplicationContext("D:/apache-tomcat-7.0.25/webapps/ManageSystem/WEB-INF/conf/applicationContext.xml");
Map<String, StdScheduler> scheMap = (Map<String, StdScheduler>)ac.getBean("testMap");