连接失败重连时间间隔可变
来源:互联网 发布:淘宝3d虚拟试穿衣服 编辑:程序博客网 时间:2024/05/16 15:52
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秒
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);}}
0 0
- 连接失败重连时间间隔可变
- ssh连接失败自动重连脚本
- Java NIO SocketChannel客户端例子(支持连接失败后自动重连)
- Android 如何修改wifi连接失败后自动重连次数?
- Android 如何修改wifi连接失败后自动重连次数?
- Android 如何修改wifi连接失败后自动重连次数?
- mysql重连,连接丢失
- OkHttp3源码解析04-失败重连
- Apache DBCP连接数据库异常重连
- hibernate连接mysql自动重连
- Android IM(五)连接断开重连
- MySQL重连,连接丢失问题解决
- 长连接、心跳和断线重连
- tcp连接检测及重连
- socket长连接,断线重连案例
- 主机连接数据库时间过长断连
- OkHttp源码解析(四)——失败重连
- OkHttp源码解析(四)——失败重连
- JAVA虚拟机体系结构
- SQL Server中DML语句要申请的锁
- 工厂方法模式 实现计算器
- PAT A 1068. Find More Coins (30)
- rails4 5.11 Updating Articles
- 连接失败重连时间间隔可变
- CentOS6.4可以读写ntfs磁盘设备的方法
- sql server XML中value(),exists(),nodes()方法
- 开发板用nfs挂载Ubuntu虚拟机
- const的用法,特别是用在函数前面与后面的区别
- [JSP 网站开发] js模拟表单提交(jQuery)
- java中的char类型
- 最大似然估计总结笔记
- 【Python进阶】Python里如何拷贝一个对象