背景

公司的搜索项目中,为了性能,做了大量的内存缓存,这些缓存的更新使用了比较多的timer.

同时,印象中记得有次Go版本升级,使用了四顶堆提升timer性能.

基于这些原因,在复习数据结构-堆的应用时,可以做结合工作生产实践做一些发散.

本文想讲的应用场景: 高性能定时器

假设我们有一个定时器,定时器中维护了很多定时任务,每个任务都设定了一个要触发执行的时间点

主要内容

和技术朋友讨论的一些东西

执行方式

  • gocron有两种,这是我知道的

shell: 在远程主机上执行shell命令 HTTP: 执行HTTP-GET请求

  • 朋友公司使用的方式. 他们公司规模较小,使用比较简单的方式做的

Crontab每隔1分钟扫描任务列表,如果要运行就fork一个进程运行。// 这个任务可以叫创世任务(因为了解区块链的创世区块,所以这里突然想到了这个名字)

附录

1.堆的应用 2.gocron - 定时任务管理系统

原创文章转载请注明出处: 小顶堆的应用