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() + "'";

说明:这个sql语句就是说要查询是否有自助建站商品到期时间小于当前时间并且服务状态还处在服务期的,查出来之后调用调子商务部的接口将其关闭,然后将其状态置为续费期。

b.loopDeleteService()说明:是否有三个月还没有续费的自助建站产品

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')";


二。配置loopVZZJZ.xml文件

<?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" class="com.sitechasia.xinnet.agent.serv.service.impl.LoopVZZJZ"></bean>

<!-- 服务到期轮询 -->
<!--定义定时执行testQuarz 这个bean中的sayHello()方法-->
<bean id="loopServiceExpired_methodVH" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="loopVZZJZManage" />
</property>
<property name="targetMethod">
<value>loopServiceExpired</value>
</property>
</bean>
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每三分钟一次--!>
<bean id="loopServiceExpiredTimeVH"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="loopServiceExpired_methodVH" />
</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" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="loopVZZJZManage" />
</property>
<property name="targetMethod">
<value>loopDeleteService</value>
</property>
</bean>
<!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm-->
<bean id="loopServiceDeleteTimeVH"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="loopServiceDelete_methodVH" />
</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"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>

<!-- <ref local="loopRenewExpired_timeVH" />

<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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值