加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

微信亿级在线点赞体系,用Redis怎样实现?

发布时间:2019-12-07 02:56:56 所属栏目:编程 来源:站长网
导读:副问题#e# 点同意果各人都不会生疏,像微信这样的交际产物中都有,但别看成果小,想要做好必要思量的对象还挺多的,如海量数据的漫衍式存储、漫衍式缓存、多 IDC 的数据同等性、会见路由到机房的算法等等。 图片来 Pexels 本文先容大型交际平台点赞体系的设

    private static final String LIKE_TASK_IDENTITY = "LikeTaskQuartz"; 

 

    @Bean 

    public JobDetail quartzDetail(){ 

        return JobBuilder.newJob(LikeTask.class).withIdentity(LIKE_TASK_IDENTITY).storeDurably().build(); 

    } 

 

    @Bean 

    public Trigger quartzTrigger(){ 

        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule() 

//                .withIntervalInSeconds(10)  //配置时刻周期单元秒 

                .withIntervalInHours(2)  //两个小时执行一次 

                .repeatForever(); 

        return TriggerBuilder.newTrigger().forJob(quartzDetail()) 

                .withIdentity(LIKE_TASK_IDENTITY) 

                .withSchedule(scheduleBuilder) 

                .build(); 

    } 

③编写执利用命的类担任自 QuartzJobBean

package com.solo.coderiver.user.task; 

 

import com.solo.coderiver.user.service.LikedService; 

import lombok.extern.slf4j.Slf4j; 

import org.apache.commons.lang.time.DateUtils; 

import org.quartz.JobExecutionContext; 

import org.quartz.JobExecutionException; 

import org.springframework.beans.factory.annotation.Autowired; 

import org.springframework.scheduling.quartz.QuartzJobBean; 

 

import java.text.SimpleDateFormat; 

import java.util.Date; 

 

/** 

 * 点赞的按时使命 

 */ 

@Slf4j 

public class LikeTask extends QuartzJobBean { 

 

    @Autowired 

    LikedService likedService; 

 

    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

 

    @Override 

    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { 

 

        log.info("LikeTask-------- {}", sdf.format(new Date())); 

 

        //将 Redis 里的点赞信息同步到数据库里 

        likedService.transLikedFromRedis2DB(); 

        likedService.transLikedCountFromRedis2DB(); 

    } 

在按时使命中直接挪用 LikedService 封装的要领完成数据同步。

以上就是点同意果的计划与实现,不敷之处还请列位大佬多多指教。若有更好的实现方案接待在评述区交换。

微信亿级在线点赞体系,用Redis怎样实现?

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读