gpt4 book ai didi

mysql - Ruby on Rails : Updating table record on a timed basis

转载 作者:行者123 更新时间:2023-11-29 06:22:00 25 4
gpt4 key购买 nike

我正在尝试使用 mysql 在我的网站上创建类似于 stackoverflow“用户评分”的内容。我不想在每次访问用户时都计算这个分数,因为会同时显示多个用户分数,并且计算方式不需要经常更新。我的想法是定期更新用户表中的所有分数行(每小时、每天等),如下所示:

user.score = user.score + x_actions_since_last_update *2 + y_actions_since_last_update - z_actions_since_last_update*3

但是我该如何定期运行它呢?这是否是完成我想做的事情的最佳方法?我应该做某种缓存吗?谢谢!

最佳答案

您可以在用户执行影响总分的操作时更新用户的分数,而不是按照给定的时间间隔计算分数。

使用您的示例,每当用户执行操作 X 时,将用户的分数加 2。对于操作 Y,得分加 1,对于操作 Z 得分减 3。

如果您不想在每次操作时都更新分数,您可以编写一个更新分数的 Rake 任务;看看this tutorial了解如何将 Rake 与 Rails 结合使用。如果您要在类 UNIX 操作系统上部署应用程序,请使用 cron 定期运行该任务。 .

关于mysql - Ruby on Rails : Updating table record on a timed basis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2766054/

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