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

深圳网络公司做网站查询网站的二级域名

深圳网络公司做网站,查询网站的二级域名,上海哪个公司做网站好,新手小白如何互联网创业一#xff0c;延迟任务应用场景#xff1f; 一般用于处理订单#xff0c;将redis中的数据延迟存入数据库#xff0c;实现异步存储减少DB的压力 二#xff0c; 延迟任务的实现方案有很多 DelayQueue Redisson MQ 时间轮 原理 JDK自带延迟队列#xff0c;基于阻塞队列…一延迟任务应用场景 一般用于处理订单将redis中的数据延迟存入数据库实现异步存储减少DB的压力 二 延迟任务的实现方案有很多 DelayQueue Redisson MQ 时间轮 原理 JDK自带延迟队列基于阻塞队列实现。 基于Redis数据结构模拟JDK的DelayQueue实现 利用MQ的特性。例如RabbitMQ的死信队列 时间轮算法 优点 不依赖第三方服务 分布式系统下可用 不占用JVM内存 分布式系统下可以 不占用JVM内存 不依赖第三方服务 性能优异 缺点 占用JVM内存 只能单机使用 依赖第三方服务 依赖第三方服务 只能单机使用 三延迟任务的原理 1DelayQueue的源码 public class DelayQueueE extends Delayed extends AbstractQueueEimplements BlockingQueueE {private final transient ReentrantLock lock new ReentrantLock();private final PriorityQueueE q new PriorityQueueE();// ... 略 } DelayQueue实现了BlockingQueue接口是一个阻塞队列。队列就是容器用来存储东西的. DelayQueue的泛型定义 E extends Delayed  这说明存入DelayQueue内部的元素必须是Delayed类型 进一步查看Delay接口 public interface Delayed extends ComparableDelayed {/*** Returns the remaining delay associated with this object, in the* given time unit.** param unit the time unit* return the remaining delay; zero or negative values indicate* that the delay has already elapsed*/long getDelay(TimeUnit unit); } 看完之后我们先不管 继续看他的父类ComparableDelayed 里面有一个方法用于比较大小 2从源码中可以看出Delayed类型必须具备两个方法 getDelay()获取延迟任务的剩余延迟时间 compareTo(T t)比较两个延迟任务的延迟时间判断执行顺序 根据源码中的注解可以看出 zero or negative values indicate * that the delay has already elapsed 零或者负值表示延迟已经过去 四DelayQueue的用法 1定义一个延迟任务的工具类 package com.tianji.learning.utils;import lombok.Data;import java.time.Duration; import java.util.concurrent.Delayed; import java.util.concurrent.TimeUnit;Data public class DelayTaskD implements Delayed {private D data; //用于存放延迟任务的数据private long deadlineNanos; //延迟任务延迟到什么时候/*** delayTime 延迟多长时间*/public DelayTask(D data, Duration delayTime) {this.data data;//用当前时间和需要延迟的时间相加得到的结果就是延迟任务延迟结束的时间this.deadlineNanos System.nanoTime() delayTime.toNanos();}/*** 这个方法是用于获取延迟任务的剩余时间*/Overridepublic long getDelay(TimeUnit unit) {return unit.convert(Math.max(0, deadlineNanos - System.nanoTime()), TimeUnit.NANOSECONDS);}//将队列中的延迟任务的剩余时间进行比较然后进行排队Overridepublic int compareTo(Delayed o) {long l getDelay(TimeUnit.NANOSECONDS) - o.getDelay(TimeUnit.NANOSECONDS);if(l 0){return 1;}else if(l 0){return -1;}else {return 0;}} } 2使用延迟队列 // 1.初始化延迟队列 DelayQueueDelayTaskString queue new DelayQueue(); // 2.向队列中添加延迟执行的任务 //当前延迟时间是Second queue.add(new DelayTask(延迟任务数据可以是方法, Duration.ofSeconds(延迟时间))); // 3.尝试执行任务 DelayTaskString task queue.take(); //执行延迟队列中的任务 task.getData()
http://www.hkea.cn/news/14322173/

相关文章:

  • 建设银行 杭州市公积金管理中心网站c2c商城网站建设方案
  • 怎么建设维护学校的网站可以做软件外包项目的网站
  • 手机网站怎么制作内容嘉兴网站关键词
  • 人防工程做资料的网站adsl服务器建网站
  • 杭州做商业地产开什么网站好wordpress 插件 文章
  • 打开国外网站很慢网站开发设计框图
  • 如何介绍设计的网站宁波专业的网站建设团队
  • 参加网站建设项目人员保障体系上海网站建设有限公司
  • 百度提交网站改版网站建设预计费用
  • 石家庄工信部网站备案asp mysql做网站
  • 网站主页设计教程做网站教材
  • 做电子章网站宠物网站首页模板
  • aspcms网站图片不显示重庆百度推广优化排名
  • 网站后缀是xyz指得是什么自动化东莞网站建设
  • 九口袋网站建设本地电脑静态网站建设
  • 中为网站建设团购网站建设流程
  • 网站加速免费网站基本特点
  • 织梦网站打开慢网站开发语言在线检测
  • 手机版网站模板下载wordpress 是否登录
  • window2008 网站建设移动开发是干什么的
  • 怎样做模板网站做软件推广网站怎么赚钱
  • 如何快速网站排名自己开发手机app软件的步骤
  • 网站怎么做微信支付宝支付微信注册小程序步骤
  • 企业网站改版项目描述公司就我一个设计
  • 上海专业网站开发游览器大全
  • 四川德立胜建设工程有限公司网站手机网站建站
  • 域名网站大全佛山建网站价格
  • 商品网站建设方案淘客类网站如何做排名
  • 自己在网上怎么做网站在线图片编辑制作
  • 信息科技公司网站使用框架开发wordpress