`
maosheng
  • 浏览: 568903 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring中配置Quartz定时任务

    博客分类:
  • Java
阅读更多
Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz,下面是在Spring中配置Quartz:

<!-- ***************属性配置文件读入 ,多个用逗号隔开*************** -->
<context:property-placeholder location="classpath:conf/ibatis/jdbc.properties , classpath:config.properties" />

<!-- ************************数据源连接配置********************* -->
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${driver}</value>
</property>
<property name="url">
<value>${url}</value>
</property>
<property name="username">
<value>${username}</value>
</property>
<property name="password">
<value>${password}</value>
</property>
</bean>

<!-- ************************定时任务配置********************* -->
   <!-- 要调用的工作类 -->
   <bean id="quartzJob" class="com.maosheng.util.schedule.ProductSynJob">
   <property name="host" value="${ftp_host}" />
   <property name="port" value="${ftp_port}" />
   <property name="username" value="${ftp_username}" />
   <property name="password" value="${ftp_password}" />
   <property name="remotePath" value="${ftp_remotePath}" />
   <property name="localPath" value="${ftp_localPath}" />
   <property name="dataSource">
    <ref bean="dataSource"/>
   </property>
   </bean>
   <!-- 定义调用对象和调用对象的方法 -->
   <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
      <!-- 调用的类 -->
   <property name="targetObject">
    <ref bean="quartzJob"/>
   </property>
   <!-- 调用类中的方法 -->
<property name="targetMethod">
<value>execute</value>
</property>
  </bean>
  <!-- 定义触发时间 -->
  <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail">
  <ref bean="jobtask"/>
  </property>
  <!-- cron表达式 每天上午14:30触发-->
  <property name="cronExpression">
  <value>0 30 14 ? * *</value>
  </property>
  </bean>
  <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
  <bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="doTime"/>
</list>
</property>
  </bean>
  <!--********************************************************************-->


<!--***************************config.properties*******************-->
#FTP config parameter
ftp_host=110.18.14.250
ftp_port=21
ftp_username=test
ftp_password=test
ftp_remotePath=D:\download
ftp_localPath=D:\oracle\myfile

<!--**************************jdbc.properties******************** -->
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@110.18.14.250:1521:orcl
username=test
password=testpwd


package com.maosheng.util.schedule;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

import javax.sql.DataSource;

import oracle.jdbc.OracleTypes;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
*
* @author maosheng
*
*/

public class ProductSynJob{

final static Logger logger = LoggerFactory
.getLogger(ProductSynJob.class);

//FTP服务器hostname
private String host;
//FTP服务器端口
private int port;
//FTP登录账号
private String username;
//FTP登录密码
private String password;
    //FTP服务器上的相对路径
private String remotePath;
//下载后保存到本地的路径
private String localPath;

private DataSource dataSource;

/**
*
* 创建人     :maosheng
* 创建时间:2013-5-7
* 功能描述:同步处理程序
*/
public void execute() {


        //下载同步理财产品文件
List<String> files_path = FTPUtil.downFile(host, port, username,
password, remotePath, localPath);

if (files_path != null && files_path.size() == 1) {

String file_name=files_path.get(0);

logger.info("下载同步产品文件"+file_name);

//解析同步产品文件并入库
Connection connection = null;
CallableStatement callableStatement = null;
int result=0;
try {

connection = dataSource.getConnection();

callableStatement=connection.prepareCall("{ call PR_FINANCE_PRODUCT_PARSE(?,?) }");

callableStatement.setString(1,file_name);

callableStatement.registerOutParameter(2, OracleTypes.INTEGER);

callableStatement.execute();

result = callableStatement.getInt(2);

if(result==1){
logger.info("解析同步产品文件,成功完成");
}else
{
logger.info("解析同步产品文件,完成失败");
}

} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(callableStatement!=null){
callableStatement.close();
}
if(connection!=null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}



public String getHost() {
return host;
}


public void setHost(String host) {
this.host = host;
}


public int getPort() {
return port;
}

public void setPort(int port) {
this.port = port;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public String getRemotePath() {
return remotePath;
}

public void setRemotePath(String remotePath) {
this.remotePath = remotePath;
}

public String getLocalPath() {
return localPath;
}

public void setLocalPath(String localPath) {
this.localPath = localPath;
}

public DataSource getDataSource() {
return dataSource;
}

public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}

}
分享到:
评论

相关推荐

    spring3配置quartz定时任务

    总结,通过以上步骤,我们就成功地在Spring 3中配置了Quartz定时任务,实现了每10秒执行一次的任务。在实际应用中,你可以根据需求定义更复杂的作业和触发器,以及使用Quartz的其他高级特性,如集群支持、持久化作业...

    springboot整合quartz定时任务yml文件配置方式

    以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及涉及的Spring Cloud Alibaba、Dubbo和Nacos的相关知识。 首先,我们需要在`pom.xml`中引入相关的依赖。Spring Boot的`spring-boot-...

    Spring Boot 配置 Quartz 定时任务(csdn)————程序.pdf

    Spring Boot 配置 Quartz 定时任务(csdn)————程序

    spring3 配置quartz定时任务的使用

    以上就是Spring 3.x中配置和使用Quartz定时任务的基本步骤。通过这种方式,你可以灵活地控制任务的执行频率和逻辑,从而满足各种复杂的定时需求。在实际项目中,你可能需要根据具体需求调整配置,例如添加更复杂的`...

    spring整合quartz定时任务调度

    2. **配置Quartz**:在Spring的配置文件(如applicationContext.xml)中,声明Quartz的相关bean,包括`SchedulerFactoryBean`,它是Quartz与Spring集成的关键: ```xml &lt;bean id="schedulerFactoryBean" class="org....

    spring中quartz定时任务实例及配置说明

    总结起来,Spring中的Quartz定时任务配置涉及到创建Job Bean、定义Job Detail Bean来指定执行方法,以及设置Cron Trigger Bean来控制执行时机。同时,还需要配置Quartz的属性文件来满足特定的应用需求。正确理解和...

    spring+quartz动态定时任务创建 +mybatis

    在定时任务中,MyBatis常用于执行数据库相关的操作,如定期更新数据、清理过期记录等。我们可以将MyBatis的SqlSessionFactory注入到定时任务的bean中,通过SqlSession执行SQL语句。由于Spring的事务管理,这些数据库...

    Spring2.5+Quartz定时任务简单例子web工程

    在"Spring2.5+Quartz定时任务简单例子web工程"中,我们可以看到这两个框架的结合使用,主要目标是实现基于 Web 应用的定时任务管理。以下将详细介绍这个项目中可能涉及的知识点: 1. **Spring 2.5**: - **依赖...

    转:spring多个定时任务quartz配置

    本文将深入探讨如何在Spring中配置多个Quartz定时任务,并结合`quartz.properties`文件进行详细讲解。 首先,我们需要理解Quartz的基本概念。Quartz是开源的作业调度框架,允许应用程序在特定时间执行任务。它支持...

    spring整合java quartz实现动态定时任务的前台网页配置与管理

    在实际项目应用中经常会用到定时任务,可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间、频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    本项目旨在演示如何利用Spring和Quartz从数据库中动态加载定时任务,并实现对它们的增删改查功能。以下是关于这个主题的详细知识讲解。 首先,Quartz是一个开源的作业调度框架,它允许开发者创建、安排和执行定时...

    spring定时任务配置详解.doc

    总结起来,这个例子展示了如何在Spring中配置Quartz定时任务,包括定义任务细节、触发器以及调度器。通过这样的配置,你可以创建复杂的定时任务调度,满足不同业务需求。需要注意的是,实际项目中,为了更好地管理...

    spring quartz定时任务demo

    总的来说,“spring quartz定时任务demo”提供了一个直观的教程,帮助开发者理解如何在Spring项目中配置和使用Quartz进行定时任务的创建和管理。通过这个例子,你可以快速学习到如何定义Job,如何配置Trigger,以及...

    Spring 框架自带定时任务和Quartz定时任务

    在这两种方式中,Spring框架提供了自己的定时任务工具Spring Task,以及与专业定时任务框架Quartz集成的能力。 首先,对于Java自带的定时任务实现,我们可以使用java.util.Timer和java.util.TimerTask类。Timer类...

    完美解决多应用服务器负载均衡环境下spring quartz同一定时任务重复执行问题

    在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...

    spring-quartz定时任务小实例

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用中定义和执行定时任务。本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz...

    spring多个定时任务quartz配置

    通过以上步骤,你可以在Spring中成功配置并运行多个Quartz定时任务。记得在你的应用启动时启动Scheduler,以便Quartz能够按照预定的时间表执行任务。同时,你可以通过调整JobDetail和Trigger的属性,灵活地控制任务...

    Spring Quartz定时任务 jar包

    Spring Quartz定时任务jar包是Java开发中用于实现定时任务调度的一种解决方案。Quartz是一个开源的作业调度框架,它允许程序创建、调度和执行作业,而Spring框架则为Quartz提供了良好的整合,使得在Spring应用中配置...

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    2. 配置Scheduler:在Spring的配置文件中,使用`SchedulerFactoryBean`来初始化和配置Quartz Scheduler。可以设置如数据库存储、线程池大小等参数。 3. 创建Job类:定义一个实现了`org.quartz.Job`接口的类,这是...

    springboot+quartz 动态化配置定时任务

    2. 配置Quartz:在`application.properties`或`application.yml`中配置Quartz的基本属性,如线程池大小、启动延迟等。 3. 创建Job类:编写代表具体任务的Job类,继承`org.quartz.Job`接口,并实现`execute...

Global site tag (gtag.js) - Google Analytics