spring +quartz maven配置

quartz作定時任務,以前使用過,可是當時沒有作筆記,致使又折騰了一點時間 因爲使用的是spring+hibernate的項目,使用maven管理包 maven配置以下:spring

<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-quartz</artifactId>
			<version>${shiro.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>quartz</artifactId>
					<groupId>org.opensymphony.quartz</groupId>
				</exclusion>
			</exclusions>
		</dependency>```
因爲使用的spring4,quartz包必須是2.0以上的,否則會有兼容問題。
在applicationContext.xml文件中添加以下代碼:

<!--類路徑 -->apache

<bean id="taskJob" class="com.test.QuartzJob" /> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="group" value="job_work" /> <property name="name" value="job_work_name" /> <!--false表示等上一個任務執行完後再開啓新的任務 --> <property name="concurrent" value="false" /> <property name="targetObject"> <ref bean="taskJob" /> </property> <property name="targetMethod"> <!--須要執行的方法 --> <value>work</value> </property> </bean> <!-- 調度觸發器 --> <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="name" value="work_default_name" /> <property name="group" value="work_default" /> <property name="jobDetail"> <ref bean="jobDetail" /> </property> <property name="cronExpression"> <!--秒 分 時 天 月 反斜線(/)字符表示增量值。例如,在秒字段中「5/15」表明從第 5 秒開始,每 15 秒一次。--> <!-- 天天0點和12點執行 --> <value>0 0 0/12 * * ?</value> </property> </bean> <!-- 調度工廠 --> <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="myTrigger" /> </list> </property> </bean> ``` quartz 時間配置就不細說了,網上一大堆。只需改本身的類路徑和執行方法就能夠了。 再添加一個定時任務 ``` <bean id="installJob" class="com.xb.job.InstallJob" /> <bean id="jobInstall" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="group" value="job_install" /> <property name="name" value="job_install_name" /> <!--false表示等上一個任務執行完後再開啓新的任務 --> <property name="concurrent" value="false" /> <property name="targetObject"> <ref bean="installJob" /> </property> <property name="targetMethod"> <value>work</value> </property> </bean> <bean id="installTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="name" value="install_default_name" /> <property name="group" value="install_default" /> <property name="jobDetail"> <ref bean="jobInstall" /> </property> <property name="cronExpression"> <!--秒 分 時 天 月 反斜線(/)字符表示增量值。例如,在秒字段中「5/15」表明從第 5 秒開始,每 15 秒一次。--> <!-- 正式環境使用,天天0點和12點執行 --> <!-- <value>0 30 0/12 * * ?</value> --> <!--開發環境使用,避免天天這個時間點都跑定時任務 --> <value>0 30 0,12 20 10 ?</value> </property> </bean> ```app

相關文章
相關標籤/搜索