web.xml
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:beans_all.xml, classpath:beans_datasource.xml, classpath:beans_dao.xml, classpath:beans_service.xml, classpath:beans_actions.xml, classpath:beans_app_actions.xml <!-- classpath:job.xml --> </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
job.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- <ref bean="triggerInTime" /> <ref bean="cronReportTriggerDay"/> <ref bean="cronReportTriggerMonth"/> <ref bean="cronReportTriggerDebt"/> <ref bean="JobBatchDoBonusTime"/> <ref bean="cronReprotTriggerReward"/> <ref bean="cronReprotTriggerBonus"/> <ref bean="cronReprotTriggerOuterTask"/> <ref bean="cronReportTriggerExamination"/> --> <!-- <ref bean="importTraceCode"/> --> <!-- <ref bean="jobCompanyDataTime"/> --> </list> </property> <property name="configLocation" value="classpath:quartz.properties" /> </bean> <!-- 时时任务 --> <bean id="triggerInTime" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="jobInTime" /> <property name="startDelay" value="300000" /> <property name="repeatInterval" value="300000" /> </bean> <bean id="jobInTime" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobInTimeTask"></property> </bean> <bean id="cronReprotTriggerReward" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobRewardTask"></property> <property name="cronExpression"> <value>0 0 23 * * ?</value> </property> </bean> <bean id="cronReprotTriggerBonus" class="org.springframework.scheduling.quartz.CronTriggerBean" > <property name="jobDetail" ref="jobBonusTask"></property> <property name="cronExpression"> <value>50 * * * * ?</value> </property> </bean> <bean id="cronReprotTriggerOuterTask" class="org.springframework.scheduling.quartz.CronTriggerBean" > <property name="jobDetail" ref="jobOuterTask"></property> <property name="cronExpression"> <value>0 0/5 * * * ?</value> </property> </bean> <bean id="jobRewardTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobRewardTask"></property> </bean> <bean id="jobBonusTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobBonusTask"></property> </bean> <bean id="jobOuterTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobOuterTask"></property> </bean> <!-- 每日凌晨0点0分0秒启动定时器 --> <bean id="cronReportTriggerDay" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDayTask" /> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <bean id="jobDayTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobDayTask"></property> </bean> <!-- 每月1号凌晨0点0分0秒启动定时器 --> <bean id="cronReportTriggerMonth" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobMonthTask" /> <property name="cronExpression"> <value>0 0 0 1 * ?</value> </property> </bean> <bean id="jobMonthTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobMonthTask"></property> </bean> <!-- 每日凌晨0点0分0秒启动定时器 --> <bean id="cronReportTriggerDebt" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDebtTask" /> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <bean id="jobDebtTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobDebtTask"></property> </bean> <!-- 每日凌晨0点0分0秒启动定时器 --> <bean id="jobCompanyDataTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobCompanyData" /> <property name="cronExpression"> <!-- <value>0 0 0 * * ?</value> --> <value>0 0/2 * * * ?</value> </property> </bean> <bean id="jobCompanyData" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobCompanyData"></property> </bean> <!-- P处理过期红包 -每日凌晨0点0分0秒启动定时器--> <bean id="JobBatchDoBonusTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobBatchDoBonus" /> <property name="cronExpression"> <value>0 0 0 * * ?</value> </property> </bean> <bean id="jobBatchDoBonus" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobBatchDoBonus"></property> </bean> <!-- 每日23点0分0秒启动定时器 --> <bean id="cronReportTriggerExamination" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobExaminationTask" /> <property name="cronExpression"> <value>0 0 23 * * ?</value> </property> </bean> <bean id="jobExaminationTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobExaminationTask"></property> </bean> <!-- xyd_追溯码code绑定 --> <bean id="importTraceCode" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobImportTraceCodeTask" /> <property name="cronExpression"> <value>0 0/30 * * * ?</value> </property> </bean> <bean id="jobImportTraceCodeTask" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="com.sp2p.task.JobImportTraceCodeTask"></property> </bean> </beans>
类
package com.sp2p.task; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.springframework.scheduling.quartz.QuartzJobBean; import org.springframework.web.context.ContextLoader; public class JobBatchDoBonus extends QuartzJobBean { private static Log log = LogFactory.getLog(JobDebtTask.class); private Object getBean(String beanName) { return ContextLoader.getCurrentWebApplicationContext().getBean(beanName); } @Override protected void executeInternal(JobExecutionContext arg0)throws JobExecutionException { JobTaskService jobTaskService = (JobTaskService) getBean("jobTaskService"); try { log.info("p处理过期红包开始......................"); long m = jobTaskService.updateUserBonus(); if(m>0){ log.info("p处理过期红包成功......................"); } if(m==0){ log.info("不存在要P处理的过期红包......................"); } if(m<0){ log.info("p处理过期红包出现失败......................"); } } catch (Exception e) { e.printStackTrace(); } } }