4 回答

TA貢獻1825條經驗 獲得超6個贊
quartz本身是多線程的,你這里修改了線程池不知道有沒有效果
對于你想控制不能并發執行的任務可以自行控制并發
class Job{
private static Object lock = new Object();
public void execute(){
synchronized(lock){
//do something
}
}
}

TA貢獻1942條經驗 獲得超3個贊
你沒有配置Timer 就是執行的時間粒度,比如每分鐘執行一次,沒小時執行一次。
給你個例子:
<!-- 要調用的工作類 -->
<bean id="quartzWork" class="com.hcy.quartz.QuartzWork"></bean>
<!-- 定義調用對象和調用對象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 調用的類 -->
<property name="targetObject">
<ref bean="quartzWork"/>
</property>
<!-- 調用類中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 定義觸發時間 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表達式 -->
<property name="cronExpression">
<value>0 0 0/1.5 * * ?</value>
</property>
</bean>
<!-- 總管理類 如果將lazy-init='false'那么容器啟動就會執行調度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
</list>
</property>
</bean>
- 4 回答
- 0 關注
- 392 瀏覽
添加回答
舉報