告别散乱的 Cron Jobs:Heartbeat 的集中式任务调度系统

2025-08-01
告别散乱的 Cron Jobs:Heartbeat 的集中式任务调度系统

Heartbeat 之前使用多个 Cron Jobs 来管理定时任务,维护成本极高且易出错。文章介绍了他们如何构建一个基于数据库的集中式任务调度系统,使用单一数据库表 `ScheduledTasks` 和一个 Cron Job 来管理所有定时任务,并利用 AWS SQS 进行异步处理,实现任务的可靠执行、重试和监控。该系统解决了任务管理混乱、错误处理困难等问题,并降低了新增定时任务的成本。

阅读更多
开发 Cron Job

类型驱动开发:让类型系统简化编程难题

2024-12-19
类型驱动开发:让类型系统简化编程难题

本文探讨了“类型驱动开发”的理念,作者通过在Heartbeat大型Typescript项目中的经验,阐述了如何利用Typescript的类型系统来简化复杂编程问题。文章的核心观点是:通过充分利用类型系统,让类型在应用的各个层面自由流动,从类型定义开始设计新功能,使非法状态不可表示,解析而非验证数据,并保持代码的诚实性和特异性,可以大幅减少bug,提高开发效率。作者还分享了如何利用纯函数作为类型桥梁,以及如何将类型系统作为代码内省工具的技巧,并指出在必要时可以适度地绕过类型系统约束。

阅读更多