Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >连接失败连接区间变量

连接失败连接区间变量

作者头像
全栈程序员站长
发布于 2022-01-14 08:08:57
发布于 2022-01-14 08:08:57
4.5K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

hash wheel timer它是一个算法,netty用于心跳超时检查,该算法的性能几个共同拥有:Ticks per Wheel (周围tick号码),Tick Duration(一tick持续时间)以及 TimeUnit(时间单位)。左右Tick Duration我感觉应该解释为每一次tick时间间隔。

HashedWheelTimer原文英语凝视表达了这样一层意思:

        一个定时器对于近实时I/O网络超时调度。

      *Tick Duration: 如描写叙述“近实时”那样。HashedWheelTimer 不会准时的调度(间隔非常少)。每一次tick,将会检查是否会有TimerTask能够调度去运行,你能够在构造器中指定时间长的或时间短的tick duration用来控制调度时间的精准度。

       Ticks per Wheel:HashedWheelTimer维持了一个数据结构称作“时间轮”,一个时间轮hash表的存放是由一个任务死亡时间的hash code决定的。

默认大小是512个hash表。假设你须要调度非常多的任务超时,你能够加大这个值。

连接失败重连。第一次500毫秒。第二次1000毫秒,….,第n-1次5秒。第n次5秒

连接失败时间间隔最大值5秒

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.concurrent.TimeUnit;

import org.jboss.netty.util.HashedWheelTimer;
import org.jboss.netty.util.Timeout;
import org.jboss.netty.util.Timer;
import org.jboss.netty.util.TimerTask;

public class TimeOutTest {
	public static void main(String[] argv) {
		/*-
		 * Tick Duration(一个tick的持续时间):  
		 *		如描写叙述"近实时"那样,HashedWheelTimer不会准时的调度(间隔非常少)。
		 *      每一次tick,将会检查是否会有TimerTask能够调度去运行,
		 *      你能够在构造器中指定时间长的或时间短的tick duration用来控制调度时间的精准度。
		 * 
		 * 能够理解成: 每一次tick时间间隔
		 *---------------------------------------------------------------------------------
		 *	Ticks per Wheel(一轮的tick数): 
		 *		HashedWheelTimer维持了一个数据结构称作"时间轮",
		 *      一个时间轮hash表的存放是由一个任务死亡时间的hash code决定的。		 *      默认大小是512个hash表。假设你须要调度非常多的任务超时,你能够加大这个值。		 *      		 * 能够理解成: 同意Timeout的个数,默认是512个。		 */		final Timer timer = new HashedWheelTimer(100, TimeUnit.MICROSECONDS);		timer.newTimeout(new TimerTask() {			private int t = 0;			private int count = 1;			private int step = 500;			public void run(Timeout timeout) throws Exception {				System.out.println("本次是延迟 " + t + "毫秒后运行");				if ((count * step) <= 5 * 1000) {					t = count * step;					System.out.println("	下次运行将在延迟 " + t + "毫秒后 第" + count + "次");					count++;				}				timeout.getTimer().newTimeout(timeout.getTask(), t, TimeUnit.MILLISECONDS);			}		}, 500, TimeUnit.MILLISECONDS);	}}

版权声明:本文博主原创文章,博客,未经同意不得转载。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116951.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验