新系统设计(五) Design Task Scheduler

作者: 古城算法分类: 校园学习 发布时间: 2024-06-15 13:26:51 浏览:4303 次

新系统设计(五) Design Task Scheduler

AI视频小助理:
--本内容由 @地球往上跑 大佬下凡召唤,热心市民@AI视频小助理闪现赶来 一、系统设计中常用的task scheduler的设计,包括任务类型、数据库设计、API设计和低层设计等,并强调了任务调度的基础要求和常见功能。 00:02 - 今天讨论的主题是设计任务调度器。 01:13 - 系统设计的步骤包括了解问题、指定需求、高水平设计、低水平设计和每个组件的实现。 02:47 - 任务调度器的最基础要求是能够调度一个任务,并且可以是on demand或recursion。 二、一个关于任务调度和数据库设计的主题。它包括任务的安排和执行、数据库的设计和API的实现等方面。 07:40 - 任务调度需要考虑可扩展性和可靠性 08:58 - 任务调度需要保证不会重复运行,更新任务状态以避免重复执行 10:08 - 任务调度使用关系数据库,保证数据一致性,复杂信息存储在元数据中 三、如何设计一个任务调度系统,包括任务的版本控制、调度、执行和状态更新等。此外,我们还讨论了如何处理失败和重试。 15:21 - 可以通过version control实现更新操作 15:58 - 可以使用多个version控制每个时间点的情况 18:21 - 可以添加心跳控制来实现更频繁的更新操作 四、如何设计一个任务调度系统,包括如何根据需求进行微调和如何实现灵活的调度方式。同时,还讨论了数据库和硬编码的优缺点。 22:57 - AATF是同步任务浮动框架,用户需求与我们的相似。 23:43 - 不同场景下的关注点不同,如支付系统和平衡引擎。 26:04 - 成熟的服务通常不需要使用API调度,可以直接使用本地配置或代码实现。 五、在做任务调度时可能会遇到的问题,以及如何通过优化数据库设计和使用缓存等方法来提高系统性能。 30:39 - 如果拿不到最新的数据,该怎么办? 32:19 - 讨论优化,是否需要多个数据库,如何处理数据增长等问题。 35:19 - 讨论数据库设计优化,包括分片、锁机制等。 实名羡慕up这溢出屏幕的才华[点赞][点赞][点赞],YYDS!快来一键三连吧[热词系列_优雅]

erma0318:
hhh 正好这周在看 job scheduler,来看看 古城的思路 ~

johnson1112:
视频里面有个用Cassandra做存储的方案很不靠谱,用Cassandra基本没办法做轮询

东方孤思子:
queue有什么轻量化的方案可以直接集成进框架而不是引用外部组件比如Kafka么?

【回复】简单的可以用redis或者hazecast的队列,hazecast可以集成到项目里,不需要单独部署。外部队列的话最好类似pulsar这种带消费者端分组的,更灵活一些。pulsar挺好用的,如果不是依赖zookeeper的话就最好了。
【回复】好问题,我也不知道,得搜下学习下
资以乐其无涯之生也:
把到时间的job取出来,这个是依靠轮询吗?

【回复】可以对timestamp做indexing,然后做sql query

程序员 课程 算法 学习 编程 系统设计面试 Java 学习心得 系统设计

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!