gpt4 book ai didi

calendar - 设计问题: How would you design a recurring event system?

转载 作者:行者123 更新时间:2023-12-03 06:15:13 32 4
gpt4 key购买 nike

如果您的任务是构建一个支持重复事件的事件调度系统,您会怎么做?当重复事件被删除时,您如何处理?您如何知道 future 事件何时发生?

即创建事件时,您可以选择“每天重复”(或每周、每年等)。

请为每个回复提供一个设计。我习惯了 Ruby/Rails,但可以使用任何你想要表达设计的东西。

我在面试时被问到这个问题,但无法给出我喜欢的真正好的答案。

注:原为already asked/answered here.但我希望获得一些更实际的细节,如下所示:

  • 如果需要能够对重复事件的一个实例进行评论或以其他方式添加数据,该怎么做?
  • 事件更改和删除如何进行?
  • 您如何计算 future 事件何时发生?

最佳答案

我首先将一些时间表达式实现为 outlined by Martin Fowler 。这负责确定计划的项目何时应该实际发生。这是一种非常优雅的做法。我最终得到的只是文章内容的基础。

下一个问题是弄清楚如何存储表达式。另一个问题是,当您读出表达式时,它们如何适应不太动态的用户界面?有人讨论过将表达式序列化为 BLOB,但很难遍历表达式树来了解它的含义。

解决方案(就我而言)是存储适合用户界面将支持的有限数量的情况的参数,然后使用该信息动态生成时态表达式(在创建优化时可以序列化) 。因此,Schedule 类最终有几个参数,如偏移量、开始日期、结束日期、星期几等等......并且您可以从中生成时间表达式来完成艰苦的工作。

至于拥有任务实例,有一个“服务”可以生成 N 天的任务。由于这是对现有系统的集成并且需要所有实例,因此这是有道理的。然而,像这样的 API 可以轻松地用于预测重复次数,而无需存储所有实例。

关于calendar - 设计问题: How would you design a recurring event system?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/123793/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com