A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
不二晨
金牌黑马
黑马币:2115
帖子:19972
精华:0
© 不二晨 金牌黑马 / 2018-8-1 10:12 / 1314 人查看 / 2 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
这里为什么要用leader/follower模式?
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。主要方法:
时间轮名词解释:
根据每个TimerTaskEntry的过期时间和当前时间轮的时间,选择一个合适的bucket(实际上就是TimerTaskList),把这个TimerTaskEntry对象放进去,同时如果bucket的过期时间有更新,就将这个bucket推进DelayQueue,重新排序
例子:假设编号为0的时间格或者桶保存着到期时间为t,每一个tick的持续时间(tickDuration)为20ms,在这个格子里只能保存着到期时间为[t~t+20]ms的任务,假设时间轮的时间格有n个,每一个间隔1ms,到期时间为m(ms),那么计算公式m%n = 所在的时间格或者桶,比如n=10,m=34ms,那么他所在桶或者时间格是4
RabbitMQ可以针对Queue和Message设置 x-message-tt,来控制消息的生存时间,如果超时,则消息变为dead letterRabbitMQ针对队列中的消息过期时间有两种方法可以设置。A: 通过队列属性设置,队列中所有消息都有相同的过期时间。B: 对消息进行单独设置,每条消息TTL可以不同。
为什么不用Timer?
核心概念:调度器、任务和触发器。
待续。。。