当前位置: 首页 > news >正文

模板网站建设流程图/成全视频免费观看在线看

模板网站建设流程图,成全视频免费观看在线看,网站设计报告,东莞商城网站开发前言 实现定时调度的方案真的是太多了,此处实现经典的基于线程池的定时调度方案。 具体实现 1,编写调度线程管理类 Slf4j Service public class TimerTaskService {private static ScheduledExecutorService scheduledExecutorService Executors.ne…

前言

实现定时调度的方案真的是太多了,此处实现经典的基于线程池的定时调度方案。

具体实现

1,编写调度线程管理类

@Slf4j
@Service
public class TimerTaskService {private static ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(10, new ThreadFactory() {AtomicInteger count = new AtomicInteger(0);@Overridepublic Thread newThread(Runnable r) {Thread t = new Thread(r);t.setDaemon(true);t.setName("Timer-" + count.getAndIncrement());return t;}});public static void scheduleWithFixedDelay(Runnable command, long initialDelay, long delay,TimeUnit unit) {scheduledExecutorService.scheduleWithFixedDelay(command, initialDelay, delay, unit);}}

2,编写定时任务分发调度类

@Slf4j
@Service
public class TaskDispatchService implements Constant {@Value("${spring.profiles.active}")private String active;@Autowiredprivate CheckMessageTask checkMessageTask;@Autowiredprivate DelayMatchTask delayMatchTask;long DELAY_INTERVAL_SECONDS = 60*10;long CHECK_INTERVAL_SECONDS = 60*60;@PostConstructpublic void init() {log.info("TaskDispatchService init success .....");if(!"prod".equals(active)) {DELAY_INTERVAL_SECONDS = 60*5;CHECK_INTERVAL_SECONDS = 60*5;}TimerTaskService.scheduleWithFixedDelay(delayMatchTask, 0L, DELAY_INTERVAL_SECONDS, TimeUnit.SECONDS);TimerTaskService.scheduleWithFixedDelay(checkMessageTask, 0L, CHECK_INTERVAL_SECONDS, TimeUnit.SECONDS);}}

3,编写具体的调度任务类

1)任务1: DelayMatchTask.java

@Slf4j
@Component
public class DelayMatchTask implements Runnable {@Autowiredprivate SocialUserMatchMapper socialUserMatchMapper;@Autowiredprivate SocialUserMatchService socialUserMatchService;@Overridepublic void run() {int startRow = 0;int pageSize = 5;try {log.info("DelayMatchTask run start");UserMatchInfo umi = new UserMatchInfo();umi.setTipsFlag(0);umi.setTipsTime(System.currentTimeMillis()/1000);Map<String, Object> map = new HashMap<>();map.put("userMatchInfo", umi);map.put("startRow", startRow);map.put("pageSize", pageSize);boolean cycle = true;while (true) {if(!cycle) {break;}List<UserMatchInfo> targetList = socialUserMatchMapper.queryMatchRoomNotTips(map);if(null == targetList || targetList.size() <= 0) {break;} else if(targetList.size() < pageSize){cycle = false;}for(UserMatchInfo userMatchInfo: targetList) {try {int count = socialUserMatchMapper.updateMatchRoom(userMatchInfo);if (count > 1) {socialUserMatchService.sendMatchSuccessMessage(userMatchInfo);}} catch (Exception e) {log.error("run userMatchInfo:{} have exception:{}" , userMatchInfo, e.getLocalizedMessage());}}startRow = startRow + pageSize;}} catch (Exception e) {log.error("run have exception:{}" , e);}}
}

2)任务2: CheckMessageTask.java

@Slf4j
@Component
public class CheckMessageTask implements Runnable,RedisConstant,Constant {@Autowiredprivate JedisCluster jedisCluster;long RESERVED_LENGTH = 300;@Value("${spring.profiles.active}")private String active;@Overridepublic void run() {try {log.info("CheckMessageTask run start");if(!"prod".equals(active)) {RESERVED_LENGTH = 50;}while (true) {String activeRoomKey = REDIS_SOCIAL_CURRENT_ACTIVE_ROOM_SET;long sLength = jedisCluster.scard(activeRoomKey);if(sLength <= 0) {return;}TimeUnit.SECONDS.sleep(1);String roomId = jedisCluster.spop(activeRoomKey);handleSingle(roomId);}} catch (Exception e) {log.error("run have exception:{}" , e.getLocalizedMessage());}}private void handleSingle(String roomId) {String roomSetKey = String.format(REDIS_SOCIAL_ROOM_MESSAGE_ZSET, roomId);long length = jedisCluster.zcard(roomSetKey);log.info("roomSetKey:{} length:{}", roomSetKey, length);if(length <= RESERVED_LENGTH) {return;}long end = length - RESERVED_LENGTH - 1;if(end < 0) {return;}jedisCluster.zremrangeByRank(roomSetKey, 0, end);}}

 

http://www.lbrq.cn/news/48583.html

相关文章:

  • 山西网站制作工具/搜狐财经峰会
  • 商务网站设计/接外贸订单的渠道平台哪个好
  • 沈阳高端网站建设公司/班级优化大师官网登录
  • 做网站宽高怎么决定/百度收录技巧
  • 域名备案要先做网站的吗/天津谷歌优化
  • 制作小程序需要什么技术/北京关键词seo
  • 网站运营需要学什么/制造企业网站建设
  • 企业网站开发论文/个人网站模板建站
  • 凡科网站建设分类模块怎么弄/黄冈seo
  • 做网站的支付/seo综合查询工具下载
  • 加盟网站建设案例欣赏/南宁seo排名收费
  • 做网站前景怎样/淘宝关键词工具
  • 做营销型网站用什么技术/百度关键词搜索量
  • 环保主题静态网站模板/seo的优化方案
  • 微信网站开发报价表/如何推广产品
  • 免费制作网站用什么做/百度推广开户价格
  • 申请个人网站和企业官网有什么不同/郴州网络推广公司排名
  • 餐饮加盟网站怎么做/seo排名分析
  • 整站seo怎么做/网上商城建设
  • 自己的ip做网站/长沙seo外包优化
  • 韩国做hh网站/一套完整的运营方案
  • 网站的费用可以做无形资产吗/百度排名优化专家
  • 请问新疆哪家网站建设公司比较好/竞价托管一般要多少钱
  • 网站线框图怎么做/无代码系统搭建平台
  • 分析不同网站的优缺点/石家庄网络推广平台
  • 甜品网站建设策划书/快速排名推荐
  • 做网站的属于什么行业/30个免费货源网站
  • 聊天网站怎么建设/外贸网络推广怎么做
  • 临朐网站做的好的/文大侠seo
  • sns社交网站开发/职业技能培训班
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘django’问题
  • 关于用git上传远程库的一些常见命令使用和常见问题:
  • 性能优化实践:Modbus 在高并发场景下的吞吐量提升(二)
  • java解析word文档
  • 【数据结构】栈与链表的区别
  • 【C++】神奇的AVL树