From 3b5f178ca79f5c4c03b9b33845c3ae2e948faf86 Mon Sep 17 00:00:00 2001 From: fanxb Date: Sun, 29 Mar 2020 18:20:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=89=80=E6=9C=89=E4=BA=BAbookmarkUpdateTime=E4=B8=8D=E7=94=9F?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/consumer/UserInfoUpdateConsumer.java | 30 +++++++++++++++ .../bookmark/business/user/dao/UserDao.java | 10 +++++ .../user/schedule/UserInfoUpdate.java | 38 ------------------- 3 files changed, 40 insertions(+), 38 deletions(-) create mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/consumer/UserInfoUpdateConsumer.java delete mode 100644 bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/schedule/UserInfoUpdate.java diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/consumer/UserInfoUpdateConsumer.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/consumer/UserInfoUpdateConsumer.java new file mode 100644 index 0000000..fff51c1 --- /dev/null +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/consumer/UserInfoUpdateConsumer.java @@ -0,0 +1,30 @@ +package com.fanxb.bookmark.business.user.consumer; + +import com.alibaba.fastjson.JSON; +import com.fanxb.bookmark.business.user.dao.UserDao; +import com.fanxb.bookmark.common.annotation.MqConsumer; +import com.fanxb.bookmark.common.constant.RedisConstant; +import com.fanxb.bookmark.common.entity.redis.RedisConsumer; +import com.fanxb.bookmark.common.entity.redis.UserBookmarkUpdate; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @author fanxb + * @date 2020/1/26 上午11:54 + */ +@MqConsumer(RedisConstant.BOOKMARK_UPDATE_TIME) +public class UserInfoUpdateConsumer implements RedisConsumer { + + @Autowired + private UserDao userDao; + + @Override + public void deal(String message) { + UserBookmarkUpdate item = JSON.parseObject(message, UserBookmarkUpdate.class); + if (item.getUserId() == -1) { + userDao.updateAllBookmarkUpdateTime(item.getUpdateTime()); + } else { + userDao.updateLastBookmarkUpdateTime(item); + } + } +} diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java index c8d4a16..1ae4d16 100644 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java +++ b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/dao/UserDao.java @@ -125,4 +125,14 @@ public interface UserDao { */ @Update("update user set bookmarkChangeTime=#{updateTime} where userId=#{userId}") void updateLastBookmarkUpdateTime(UserBookmarkUpdate item); + + /** + * 功能描述: 更新所有用户的更新时间 + * + * @param time time + * @author 123 + * @date 2020/3/29 18:18 + */ + @Update("update user set bookmarkChangeTime=#{time}") + void updateAllBookmarkUpdateTime(long time); } diff --git a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/schedule/UserInfoUpdate.java b/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/schedule/UserInfoUpdate.java deleted file mode 100644 index 54b13ae..0000000 --- a/bookMarkService/business/user/src/main/java/com/fanxb/bookmark/business/user/schedule/UserInfoUpdate.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.fanxb.bookmark.business.user.schedule; - -import com.alibaba.fastjson.JSON; -import com.fanxb.bookmark.business.user.dao.UserDao; -import com.fanxb.bookmark.common.constant.RedisConstant; -import com.fanxb.bookmark.common.entity.redis.UserBookmarkUpdate; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import java.util.concurrent.TimeUnit; - -/** - * @author fanxb - * @date 2020/1/26 上午11:54 - */ -@Component -public class UserInfoUpdate { - /** - * 阻塞时间 - */ - private static final int BLOCK_TIME = 15; - - @Autowired - private StringRedisTemplate redisTemplate; - @Autowired - private UserDao userDao; - - @Scheduled(fixedDelay = 100000) - public void userBookmarkUpdateTime() { - String value; - while ((value = redisTemplate.opsForList().rightPop(RedisConstant.BOOKMARK_UPDATE_TIME, BLOCK_TIME, TimeUnit.SECONDS)) != null) { - UserBookmarkUpdate item = JSON.parseObject(value, UserBookmarkUpdate.class); - userDao.updateLastBookmarkUpdateTime(item); - } - } -}