gpt4 book ai didi

delayed-job - 为什么像带有徽章的 stackoverflow 这样的网站使用某种类型的延迟作业来确定何时授予新徽章?

转载 作者:行者123 更新时间:2023-12-03 22:55:58 24 4
gpt4 key购买 nike

Stackoverflow 有一个漂亮的徽章系统。我注意到的一件事是徽章不会立即颁发,但有时在我达到标准后似乎会有某种延迟。我在其他一些有徽章的网站上也注意到了这一点。

大概这是因为他们正在使用延迟作业,定期扫描以查看是否需要授予任何新徽章。我看到这里也建议使用这种方法:
How to implement badges?

但是,我真的不明白为什么这应该是必要的,并且我倾向于在我的实现中简单地拥有一个系统,在执行相关操作后,例如发布新评论,调用 checkAwardBadge 函数,该函数检查是否用户符合新评论徽章的标准。

Speedwise,我认为所有相关的用户统计信息都将简单地存储在 User 的子模型中,例如 UserStats,这样就不必每次都计算评论数量,而只是一个简单的查询。

让我印象深刻的是,我喜欢的系统应该是快速且易于理解的。关于为什么有必要使延迟的工作使事情复杂化,我在这里遗漏了哪些缺点?

澄清:
我计划有一个抽象类成就,每个实际成就都是成就的实现。每个成就都会有一个 checkAwardBadge 函数,它可以从 Controller 调用,如果我应该选择走那条路线,甚至可以延迟工作,或者任何时候,检查用户是否获得了某个徽章。因此,成就代码将全部集中。

最佳答案

您的实现可能适用于简单的场景(如您所描述的场景),但如果事情变得更复杂,您有一个解决方案:

  • 在每个 Action 中进行不必要的检查
  • 为每个 Action 添加惩罚性能
  • 不缩放
  • 没有所有规则的中心位置。
  • 关于delayed-job - 为什么像带有徽章的 stackoverflow 这样的网站使用某种类型的延迟作业来确定何时授予新徽章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3366077/

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