JAVA做一个涉及倒计时功能的问题
发布网友
发布时间:2022-05-20 01:11
我来回答
共4个回答
热心网友
时间:2023-10-21 19:28
在线程里隔一秒减一下数据库里设置的time。这么犀利的招数你都能想的出来啊!你的服务器还真是强大,不死机都谢天谢地啊!
具体的代码我懒的写,给你个思路吧,写线程但是别往数据库存,线程有睡眠功能.sleep(),有人点了竞拍,线程启动,立马睡眠300秒,睡醒就表示竞拍时间结束了,可以往数据库存了,要是又有人竞拍这个物品,前面睡眠的线程直接stop,再开一个线程继续睡觉300秒
热心网友
时间:2023-10-21 19:28
不要实时的更新数据库。
把time计时放在内存里做。
比如,一个拍品有一个 synchronized time, 竞价的时候更新这个值。但竞价结束以后,再更新数据库。
追问我最初也是这么想的,但就怕一旦服务器出现问题,我这TIME就没处可找了。
我们这拍卖有点特殊,出问题了也得接着前面的继续拍。
追答那可以考虑外部的分部式缓存,比如Redis,能持久化在硬盘上。
热心网友
时间:2023-10-21 19:29
页面上这么做
var intervalId = setInterval(function(){
if (time > 0)
{
time --;
//用js更新你的页面时间
}
else
{
//时间到了你要做的
clearInterval(intervalId);
}
},1000);
后台要使用内存,别尼玛那样搞数据库。老板骂死你的。
当有其他人访问要通知页面重新计时以及改变价格,这要用到“推”的技术,或者土鳖办法一直请求查看价格。
热心网友
时间:2023-10-21 19:29
放到session或者application里面不可以吗?