定时器

定时器

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
	default-lazy-init="true">

<!-- Resource类构造方法注入-->
    <bean name="posRTDataResource" class="com.zk.pos.resources.PosRTDataResource" scope="prototype">
       <constructor-arg ref="posDeviceBiz"></constructor-arg>
    </bean>
    
    <!-- 将卡置为消费超期流程 -->
    <bean id="cardExpiryProcess" class="com.zk.pos.resources.CardExpiryProcess">
    </bean>
    
    <bean id="cardBalanceProcess" class="com.zk.pos.resources.CardBalanceProcess"></bean>
    
	<!-- 将卡置为消费超期流程 定义调用对象和调用对象的方法 -->
	<bean id="cardExpiryTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject" ref="cardExpiryProcess" />
		<!-- 调用类中的方法 --> 
		<property name="targetMethod" value="expireCards" />
	</bean>
	
	<!-- 将卡置为消费超期流程 定义调用对象和调用对象的方法 -->
	<bean id="cardBalanceTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject" ref="cardBalanceProcess" />
		<!-- 调用类中的方法 --> 
		<property name="targetMethod" value="saveCardBalanceEveryDay" />
	</bean>
	
	
	<!-- 定义触发时间 -->
	<bean id="cardExpiryTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="cardExpiryTask" />
		<!-- cron表达式 0秒0分即整时触发 -->
		<property name="cronExpression" value="0 0 0 * * ? *" />
	</bean>
	
	
	<!-- 定义触发时间 -->
	<bean id="cardBalanceTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="cardBalanceTask" />
		<!-- cron表达式 0秒0分即整时触发 -->
		<property name="cronExpression" value="3 0 0 * * ? *" />
	</bean>
	
	
    <!-- 监视并设置设备状态流程 -->
    <bean id="devStateMonitorProcess" class="com.zk.pos.resources.DevStateMonitorProcess">
    </bean>
    
    <!-- ============================定时器模块=========================== -->
	<!-- 监视并设置设备状态流程 定义调用对象和调用对象的方法 -->
	<bean id="devStateMonitorTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<!-- 调用的类 -->
		<property name="targetObject" ref="devStateMonitorProcess" />
		<!-- 调用类中的方法 --> 
		<property name="targetMethod" value="setDevState" />
	</bean>
	<!-- 定义触发时间 -->
	<bean id="devStateMonitorTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="devStateMonitorTask" />
		<!-- cron表达式每30秒触发 -->
		<property name="cronExpression" value="0/30 * * * * ?" />
	</bean>
    
    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
    <bean id="startQuertz" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cardExpiryTime"/>
                <ref bean="devStateMonitorTime"/>
                 <ref bean="cardBalanceTime"/>
            </list>
        </property>
    </bean>
</beans>

package com.zk.pos.resources;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;

import com.zk.common.util.DateUtils;
import com.zk.pos.biz.IPosCardManageBiz;
import com.zk.pos.entity.PosCardManage;

public class CardBalanceProcess
{

	@Autowired
	private IPosCardManageBiz posCardManageBiz;

	public void saveCardBalanceEveryDay() throws Exception
	{
		String path = CardBalanceProcess.class.getClassLoader().getResource("/").getFile();
		File file = new File(path);
		String parentDir = file.getParentFile().getParentFile().toString();
		File f = new File(parentDir + File.separator + "cardBalance");
		if (!f.exists())
		{
			System.out.println(f.toString());
			f.mkdirs();
		}
		String fileName = DateUtils.dateToString(new Date(), "yyyyMMddHHmmss") + ".txt";
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(f, fileName))));
		for (PosCardManage pm : posCardManageBiz.getAll())
		{
			bw.write(pm.getSysCardNo() + "###" + pm.getBlance());
			bw.newLine();
		}
		bw.close();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值