tbschedule源码分析配置
支付平台对账需要用到 一些定时器管理框架, (量大的时候会用到任务并行处理框架)
选中了 啊里的tbschedule框架.
网上的说明较多,不过以下根据普通的互联网小业务再说明mark一下:
一般的小业务可以分为:
1.频繁定时任务,如每分钟执行一次(0 * * * * ?)
2.每天仅一次的定时任务, 如(1 12 * * * ?)
而在小业务中,假如不过于依赖多线程并行处理的话,针对这两种任务,都要有一个不同的配置标准,这些网络上的说明至今还没有更详尽:
(一般用的Sleep模式)
主要是以下三个配置项目需要注意:
<执行开始时间>, <执行结束时间>,<每次处理完数据后休眠时间(秒)>
源码大概的类路线, 其他帖子已经说得够详细了,这里简单列举:
-> TBScheduleManagerFactory - init() - initialData() - refresh()
-> ManagerFactoryTimerTask - refresh()
- assignScheduleServer()
- reRunScheduleServer()
-> IStrategyTask - createStrategyTask()
-> TBScheduleManagerStatic
-> HeartBeatTimerTask
-> initial() - computerStart()
-> PauseOrResumeScheduleTask
针对此三个参数,主要看TBScheduleManager的computerStart方法
#此些配置方法限制了 复杂的 ctrontab 配置, 如(23-7/2,8)
一.如果是频繁定时任务,如每分钟执行一次(0 * * * * ?), 则 设置<每次处理完数据后休眠时间(秒)>
以下为空: <执行开始时间>, <执行结束时间>
这样,它会一直的在while(true)块里运行, 每隔设置的时间才唤醒一次, 直到人为的注销此factory或者strategy
二.如果是每天仅一次的定时任务, 如(1 12 * * * ?), 则设置以下
<执行开始时间>, <执行结束时间>, <每次处理完数据后休眠时间(秒)>(统一设置成1小时), 尽量保证开始时间结束时间差小天1小时
这样,它会在设置好的执行开始时间时唤醒一次,然后一直在while(true)块里等待1小时, 而还没到1小时,到了执行结束时间时它就会自动注销了.切合需求.
当然有一些公共的配置:
比如:
selectTasks()方法默认返回有长度的List
tbschedule源码分析配置相关推荐
- Libevent源码分析-----配置event_base
出处: http://blog.csdn.net/luotuo44/article/details/38443569 前面的博文都是讲一些Libevent的一些辅助结构,现在来讲一下关键结构体 ...
- 入理解分布式调度框架TBSchedule及源码分析
简介 由于最近工作比较忙,前前后后花了两个月的时间把TBSchedule的源码翻了个底朝天.关于TBSchedule的使用,网上也有很多参考资料,这里不做过多的阐述.本文着重介绍TBSchedule的 ...
- 阿里面试这样问:Nacos配置中心交互模型是 push 还是 pull ?(原理+源码分析)...
本文来源:公众号「 程序员内点事」 对于Nacos大家应该都不太陌生,出身阿里名声在外,能做动态服务发现.配置管理,非常好用的一个工具.然而这样的技术用的人越多面试被问的概率也就越大,如果只停留在使用 ...
- 【Android 安全】DEX 加密 ( 多 DEX 加载 | 65535 方法数限制和 MultiDex 配置 | PathClassLoader 类加载源码分析 | DexPathList )
文章目录 一.65535 方法数限制和 MultiDex 配置 二.多 DEX 加载引入 三.PathClassLoader 类加载源码分析 四.BaseDexClassLoader 类加载源码分析 ...
- 【转】ABP源码分析四十四:ZERO的配置
ABP Zero模块中需要配置的地方主要集中在三块:1.配置静态的role:2.配置外部认证源:3.配置本地化语言和资源. UserManagementConfig/IUserManagementCo ...
- 【转】ABP源码分析二:ABP中配置的注册和初始化
一般来说,ASP.NET Web应用程序的第一个执行的方法是Global.asax下定义的Start方法.执行这个方法前HttpApplication 实例必须存在,也就是说其构造函数必然已完成了执行 ...
- apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了
目录 回顾昨日 nacos 集成 Spring Cloud Alibaba 方式 Nacos Spring Boot 方式 Apollo 集成 自研配置中心对接 无配置中心对接 实现源码分析 兼容 A ...
- 【kafka】Kafka中的动态配置源码分析
1.概述 2.源码分析 Broker启动加载动态配置 KafkaServer.startup 启动加载动态配置总流程 2.1 动态配置初始化 config.dynamicConfig.initiali ...
- Kubernetes Node Controller源码分析之配置篇
2019独角兽企业重金招聘Python工程师标准>>> Author: xidianwangtao@gmail.com Kubernetes Node Controller源码分析之 ...
- springboot sessionfactory_Spring Boot从入门到精通(五)多数据源配置实现及源码分析...
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...
最新文章
- hdu 2141 Can you find it?
- vuecli3 引入全局scss变量_vue-vue-cli3 sass全局变量配置
- Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...
- python文件输入和输出程序_python -o 和-i 输入和输出文件如何理解
- 李连杰年度巨作霍元甲主题曲:周杰伦唱
- Python 删除满足条件的某些行
- 项目管理中网络图的看法和相关参数阅读说明
- html背景图片垂直居中,css — 定位、背景图、水平垂直居中
- 【转】JMeter学习(二十八)内存溢出解决方法
- java.sql.SQLException: Protocol violation 解决方法
- python编程入门第一课教案_python编程从入门到实践 第一课:输入输出
- 颜宁追问4位男科学家:如何平衡事业和家庭?
- 一文教你高效画出技术架构图
- python如何压缩pdf_PDF文件怎么压缩,一键压缩PDF文件
- 电桥的原理,及非线性误差
- 吴永祥:政府大数据服务平台建设之道
- 青岛大学计算机考研率高吗,学院2015届毕业生考研率再创新高
- Java和C专项练习
- java pdf转图片原理_pdf转图片程序(java实现)
- JVM (1) JVM为什么需要GC?
热门文章
- 《微观经济学》博弈论入门:囚徒困境、智猪博弈、性别战、斗鸡博弈
- troublemaker中文谐音_trouble maker的中文音译歌词 希望准确的遵循原来的发音。。。不是中文歌词和韩语歌词!要的是音译啊 注意...
- 8.1 段子中“酷毙”了的IT行业——《逆袭大学》连载
- 微信商城的这六大优势,以及这些丰富的功能,你知道吗?
- 软件系统安全性测试列表
- java中handler机制_自己动手撸一个Handler,让你彻底搞懂Handler机制,揍吻你服不服?...
- python之操作mysql数据库
- 到底什么是NP问题,NP hard问题,NP完全问题?
- Google Guice 快速入门
- SketchUp LayOut 剪贴簿制作技巧