首页 新闻 会员 周边

关于一个任务时间到期后怎么实现更改状态

0
[已解决问题] 解决于 2015-10-14 13:43

我有一个任务,发布后有效期时间为7天,如果这7天没人接,那么他的状态就要标记为已经失效,

这个任务有对接中、已完成、已失效,我在列表时候要根据状态显示这3中状态对应的项目,请问我怎么让已经到失效时间的项目状态更新成已失效,  我想过当我去查数据的时候,顺便更新状态。但是这样效率太低,每次去查都要算时间,有没更好的办法

 

十分抱歉菜鸟级别没有园豆   我去   没有园豆还真是没人理啊

keeppuching的主页 keeppuching | 初学一级 | 园豆:6
提问于:2015-10-12 23:19
< >
分享
最佳答案
0

用SQL查询是否失效,可以用 day(当前时间-发布时间)>7返回失效!而不用是否失效的字段进行判断呢?

奖励园豆:5
JackWang-CUMT | 老鸟四级 |园豆:2866 | 2015-10-13 08:17

这样每次都需要计算  查询的时候比如十万条 就要计算 十万  然后再取前10条这样很崩溃

keeppuching | 园豆:6 (初学一级) | 2015-10-13 16:34

@keeppuching: 难道不分页么?

JackWang-CUMT | 园豆:2866 (老鸟四级) | 2015-10-13 16:42
其他回答(2)
0

1 定时比如说每隔5秒更新一下状态(这个不推荐)。

2  查询的时候,不要用用SQL语句更新状态后,再查询需要的数据。而是先把需要的数据查询出来,然后在内存中把 状态给计算好,然后把 结果呈现出来。

需要格局 | 园豆:2145 (老鸟四级) | 2015-10-13 09:31

这样每次都需要计算  查询的时候比如十万条 就要计算 十万  然后再取前10条这样很崩溃

 

支持(0) 反对(0) keeppuching | 园豆:6 (初学一级) | 2015-10-13 16:34
0

Windows service就可以,就是看你需要多久跑一次了,每次跑获取当前时间,减去你的发布时间,大于7天你就更新数据库状态,服务又不会影响你的网站性能

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 09:36

我是按7*24小时来算的 这样不准确

支持(0) 反对(0) keeppuching | 园豆:6 (初学一级) | 2015-10-13 16:33

@keeppuching: 和你的7*24小时有什么关系?你可以把时间转化为小时

支持(0) 反对(0) 稳稳的河 | 园豆:4216 (老鸟四级) | 2015-10-13 16:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册