首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

超过12小时没有审核,则默认通过,请教这个该如何实现呢

2012-12-24 
超过12小时没有审核,则默认通过,请问这个该怎么实现呢?其实审核的功能就是 改变下state 状态,默认状态是:

超过12小时没有审核,则默认通过,请问这个该怎么实现呢?
其实审核的功能
就是 改变下  state 状态,
默认状态是:"未审核"
审核之后是:把状态改为 "已通过" 或者  "不通过" (由管理员审核)

如果没有审核,则时间超过了12小时的话,默认审核 为"已通过"。

请问这个该怎么实现呢?


[解决办法]
使用Java中的定时任务TimerTask
具体使用方法详见API
[解决办法]
查询通过的时候,两个范围:通过的 、 未通过的但时间超过12个小时的。


[解决办法]
用数据库提供的定时器,写个存储过程.
[解决办法]
如楼上所说的,基本上有两种方法,一种是定时,即12小时后,自动更改状态
另一种不用定时,但查询时,你要通过时间来判断是否超过了12小时,超过就把它当作已通过了
[解决办法]


<?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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
                     http://www.springframework.org/schema/beans/spring-beans.xsd 
                     http://www.springframework.org/schema/tx 
                     http://www.springframework.org/schema/tx/spring-tx.xsd 
                     http://www.springframework.org/schema/aop 
                     http://www.springframework.org/schema/aop/spring-aop.xsd">

   
<!-- DRG抓取包裹信息   1小时一次 end-->
<!-- TMS转运   1小时一次-->
     <bean id="timeGetPackageState2Infomation" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="tmsRouteSearchManagerAction"/><!-- 自己在定义 的struts的bean名字-->
        </property>
        <property name="targetMethod">
            <value>getPackageInfomation</value><!-- 调用执行的方法-->
        </property>
    </bean>
    <bean id="timeGetPackageState2InfomationTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
     <property name="jobDetail"> 
         <ref bean="timeGetPackageState2Infomation"/>   <!--调用上面声明的bean -->
     </property>
     <property name="cronExpression">
      <value>0 */1 * * * ?</value>  <!-- 每5分钟触发一次 -->
<!--         <value>0 0 */1 * * ?</value>   每1小时触发一次 -->


     </property>
 </bean>
<!-- TMS转运   1小时一次 end-->
    
<bean autowire = "no" class = "org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="timeGetPackageState2InfomationTrigger"/>
            </list>
        </property>
    </bean>
    

</beans>




LZ,这就是一个spring的定时器,时间可以自己定义的,我这是5分钟跑一个程序!
[解决办法]
搞这么麻烦干啥子...
跑个数据库作业,时效要求不高的,半小时一次,高点的1,2分钟一次,更新12小时前,状态=未审核不就完了吗...

何必把简单的事情放在程序里,还要额外的包,额外的代码...
[解决办法]
引用:
搞这么麻烦干啥子...
跑个数据库作业,时效要求不高的,半小时一次,高点的1,2分钟一次,更新12小时前,状态=未审核不就完了吗...

何必把简单的事情放在程序里,还要额外的包,额外的代码...

赞成使用数据库作业。用存储过程来掉,别放在程序里。放在程序里很浪费系统开销的。因为程序里你要每隔不久的时间就要查数据库,更新数据库。这个操作太过于频繁了。直接放数据库更好。时效性高不受系统制约。一旦你系统停止服务了或者需要停止维护更新,这样就不好了。
[解决办法]
引用:
引用:
我这个是定时的去你数据库里面查询,未审核通过的,超过12小时的这种!

请问下,

我想要的是,用户提交了申请,则启动计时器,如果时间间隔超过了12小时,且管理员还没有审核的话,则默认通过审核。这个动作交给定时器完成,审核完成了之后,就关闭这个计时器。

如果还有用户申请,则继续启动定时器,是不是可以这样理解,一个用户一个定时……

这个想法不科学,一个用户一个定时器。要知道一个定时器就是一个线程了。要是你有一万个用户提交了,岂不是要有一万个线程在服务器上跑。最好的就是用14楼的方案数据库作业定时扫描表。反正你提交的时候都应该有个提交时间的。拿提交时间和当前的时间比对就行了。不会占用系统的开销,和系统是脱离的。不会因为系统的更新维护而受到影响

热点排行