java轮询程序的实现
有这样一项需求:自助建站产品到期之后,通过程序自己把它关闭了,然后待客户续费之后再重新开通,如果三个月客户一直不续费,则通过程序把当前自助建站产品删除了。要求是每三分钟执行一次。以下是实现过程。
一。首先写了一个LoopVZZJZ.java的类,里面包含两个方法:
a.loopServiceExpired()说明:检查服务是否进入续费期,就是说是否要调用关闭接口。
String sql = "select id, service_code,domain_name,website_id from SERVICE_VIRTUALHOST where ";sql += " service_state='" + AgentConstants.SERVICE_STATE_OPENED + "'";sql += " and taste_type='" + AgentConstants.TASTE_TYPE_NOT + "'";sql += " and to_char(service_end_date,'yyyy-MM-dd')<= '" + DateUtil.getCurrentDate() + "'";
String sql = "select service_code from SERVICE_VIRTUALHOST where ";sql += " service_state='" + AgentConstants.SERVICE_STATE_RENEWING + "'";sql += " and taste_type='" + AgentConstants.TASTE_TYPE_NOT + "'";sql += " and service_end_date+90 <= to_date('"+DateUtil.getCurrentDate()+" 23:59:59','yyyy-mm-dd hh24:mi:ss')";<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" ><beans> <!-- update by tangwenchao 2010-08-26 自助建站轮循 --><bean name="loopVZZJZManage" autowire="byName" /> </property> <property name="targetMethod"> <value>loopServiceExpired</value> </property> </bean> <!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每三分钟一次--!> <bean id="loopServiceExpiredTimeVH" /> </property> <property name="cronExpression"> <!-- 关键在配置此表达式 --> <value>0 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * ? </value><!-- [color=red]从左到右分别是:秒(0-59) 分(0-59) 时(0-23) 日期(1-31) 月份(1-12) 星期(1-7) 空格为单位的分隔符,*代表所有的时间 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 代表没三分钟执行一次[/color]--> </property> </bean> <!-- 服务删除轮询 --> <!--定义定时执行testQuarz 这个bean中的sayHello()方法--> <bean id="loopServiceDelete_methodVH" /> </property> <property name="targetMethod"> <value>loopDeleteService</value> </property> </bean> <!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm--> <bean id="loopServiceDeleteTimeVH" /> </property> <property name="cronExpression"> <!-- 关键在配置此表达式 --> <value>0 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * ? </value><!-- 从左到右分别是:秒(0-59) 分(0-59) 时(0-23) 日期(1-31) 月份(1-12) 星期(1-7) --> </property> </bean> <!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。 --> <bean autowire="no" /> <ref local="loopTasteExpired_timeVH" /> <ref local="loopSubProductExpired_timeVH" /> <ref local="loopActivateExpired_timeVH" /> <ref local="loopOpenTaste_timeVH" /> <ref local="loopMessage_timeVH" /> <ref local="loopDeleteTransition_timeVH" /> <ref local="loopTransitionVHostExpired_timeVH" /> <ref local="loopUpgrade_timeVH" />--> <ref local="loopServiceDeleteTimeVH" /> <ref local="loopServiceExpiredTimeVH" /> </list> </property> </bean></beans>哥,笑,而不语,飘过