读书人

超过12小时没有审核则默认通过请教

发布时间: 2012-12-24 10:43:14 作者: rapoo

超过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楼的方案数据库作业定时扫描表。反正你提交的时候都应该有个提交时间的。拿提交时间和当前的时间比对就行了。不会占用系统的开销,和系统是脱离的。不会因为系统的更新维护而受到影响

读书人网 >J2EE开发

热点推荐