设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > MySql教程 > 正文

微信亿级在线点赞系统,用Redis如何实现?(12)

发布时间:2019-12-06 01:43 所属栏目:115 来源:站长网
导读:privatestaticfinalStringLIKE_TASK_IDENTITY=LikeTaskQuartz; @Bean publicJobDetailquartzDetail(){ returnJobBuilder.newJob(LikeTask.class).withIdentity(LIKE_TASK_IDENTITY).storeDurably().build(); } @Bea

    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如何实现?

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读