背景
公司的搜索项目中,为了性能,做了大量的内存缓存,这些缓存的更新使用了比较多的timer.
同时,印象中记得有次Go版本升级,使用了四顶堆提升timer性能.
基于这些原因,在复习数据结构-堆的应用时,可以做结合工作生产实践做一些发散.
本文想讲的应用场景: 高性能定时器
假设我们有一个定时器,定时器中维护了很多定时任务,每个任务都设定了一个要触发执行的时间点
主要内容
和技术朋友讨论的一些东西
执行方式
- gocron有两种,这是我知道的
shell: 在远程主机上执行shell命令 HTTP: 执行HTTP-GET请求
- 朋友公司使用的方式. 他们公司规模较小,使用比较简单的方式做的
Crontab每隔1分钟扫描任务列表,如果要运行就fork一个进程运行。// 这个任务可以叫创世任务(因为了解区块链的创世区块,所以这里突然想到了这个名字)