spring 定时任务、调用过程
2014-06-05 14:38
169 查看
网上介绍:http://gong1208.iteye.com/blog/1773177
一。常见用法:
1.任务类:
二、实例一,定时调用存贮过程
1.xml定时配置
三、。。。。。。
一。常见用法:
1.任务类:
public class JobHandler { public void cleanLog() { logger.info("--开始执行删除日志任务--"); } }2.spring xml配置:
<!-- 工作的bean --> <bean id="cleanLog" class="com.core.util.JobHandler" /> <!-- job的配置开始 --> <bean id="myJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="cleanLog" /> </property> <property name="targetMethod" value="cleanLog"> </property> </bean> <!-- job的配置结束 --> <!-- 调度的配置开始 --> <bean id="crontestJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="myJob" /> </property> <property name="cronExpression"> <value>0 0 1 * * ?</value> </property> </bean> <!-- cronExpression调度7个参数所代表的含义 字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC <span style="white-space:pre"> </span>, - * / 星期 1-7 或者 SUN-SAT , - * ? / L C # 年(可选) <span style="white-space:pre"> </span>留空, 1970-2099 <span style="white-space:pre"> </span>, - * / --> <!-- 调度的配置结束 --> <!-- 启动触发器的配置开始 --> <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="crontestJobTrigger" /> </list> </property> </bean> <!-- 启动触发器的配置结束 -->
二、实例一,定时调用存贮过程
1.xml定时配置
<!-- 每天2点自动跑存储过程定时器 --> <bean id="bean" class="org.springframework.aop.framework.ProxyFactoryBean"> <property name="target"> <bean class="com.cc.Proc"> <property name="jdbcTemplate"> <ref bean="jdbcTemplate" /> </property> </bean> </property> <property name="proxyTargetClass"> <value>true</value> </property> </bean> <bean id="executeProc" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="bean" /> <property name="targetMethod" value="executeProc" /> </bean> </property> <property name="cronExpression"> <value>0 0 2 * * ?</value> </property> </bean> <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- <ref bean="executeProc1" />--> <ref bean="executeProc" /> </list> </property> </bean>2.执行存储过程类Proc
package com.cc; import java.sql.CallableStatement; import java.sql.SQLException; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.CallableStatementCallback; import org.springframework.jdbc.core.JdbcTemplate; public class Proc{ private JdbcTemplate jdbcTemplate; private String a; private String b; public void executeProc() { String sqlProc = "{call PROC(?,?,?,?)}"; String strProc = (String) jdbcTemplate.execute(sqlProc, new CallableStatementCallback() { @Override public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException { cs.setString(1, a);// 输入参数 cs.setString(2, b);// 输入参数 cs.registerOutParameter(3, java.sql.Types.VARCHAR);// 输出参数 cs.registerOutParameter(4, java.sql.Types.VARCHAR);// 输出参数 cs.execute(); System.out.println("Proc code=" + cs.getString(3) + ":::Proc message=" + cs.getString(4)); return cs.getString(3); } }); System.out.println(strProc); } public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public String getA() { return this.a; } public void setA(String a) { this.a = a; } public String getB() { return this.b; } public void setB(String b) { this.b = b; } }3.执行的存储过程PROC
CREATE OR REPLACE procedure PROC(a in varchar2, b in varchar2, code out varchar2, message out varchar2) is a1 varchar2(10); b1 varchar2(10); begin a := to_char(to_date(a, 'yyyy-MM-dd') - 1,'yyyy-MM-dd'); b := to_char(to_date(b, 'yyyy-MM-dd'),'yyyy-MM-dd'); code := SQLCODE; msg := SUBSTR(SQLERRM, 1, 100); dbms_output.put_line(code || '::' || message); end PROC;
三、。。。。。。
相关文章推荐
- Spring结合Quartz实现多任务定时调用(转)
- Spring结合Quartz实现多任务定时调用
- mysql启用系统定时任务自动调用存储过程动态拼接表
- Spring Quartz 实现多任务定时调用
- 通过shell脚本调用oracle存储过程并加入定时任务
- 【转】Spring结合Quartz实现多任务定时调用
- springboot(十一):定时任务,异步调用
- 解决spring 定时任务中调用context 报错误NullPointer....获取项目路径
- spring 定时任务调用存储过程配置示例(未测试)
- ORACLE 11G在存储过程里面遍历游标, 调用job任务定时执行
- SpringTask执行定时任务中调用方法中断问题
- Spring结合Quartz实现多任务定时调用
- Oracle Jobs 定时任务 调用存储过程使用说明
- Spring结合Quartz实现多任务定时调用
- 注解方式进行spring定时任务的调用
- 关于Java Web 使用Spring中使用Quartz(定时调用、实现固定时间执行), 触发定时器(执行某些任务)的实例
- Spring结合Quartz实现多任务定时调用
- mysql启用系统定时任务自动调用存储过程动态拼接表
- oracle设置定时任务来调用存储过程完成统计(每小时计时一次存到hour表)
- Spring结合Quartz实现多任务定时调用