如何在对系统的影响最小的情况下为您的 APP 处理成就/徽章/奖励?

Posted

技术标签:

【中文标题】如何在对系统的影响最小的情况下为您的 APP 处理成就/徽章/奖励?【英文标题】:How to handle achievments/badges/awards for your APP with minimum hit to system? 【发布时间】:2011-06-27 23:56:13 【问题描述】:

我喜欢我正在设计的网站的徽章和成就的概念。它们已被证明可以提高使用率/利用率,我认为这可能是我想要开发的应用程序的一大动力。

在高层次上,我可以想到 3 种方法来做到这一点。

检查满足 cron 工作要求的成员:这对我来说似乎不是一个好主意,随着成员的增长,cron 工作将花费越来越长的时间。

每次完成可以满足徽章要求的操作时,检查是否应该授予任何徽章:这似乎是一个好方法,但似乎我可能会持续检查已授予的徽章或用户甚至可能不靠近的徽章。

每次用户完成一个可以获得徽章的操作时,检查他们是否已经拥有它,然后检查他们是否满足要求:这看起来也不错,但如果我是将用户存储为一个对象,看起来它可能会变得非常大,或者我最终可能会一直非常努力地访问数据库来检查成就。

有什么我缺少的选项吗?我对一种或多种方法的担忧是否被夸大了?

编辑: 这是一个远没有我想象的那么有趣的问题,还是我问的时机不对?我有什么不清楚的地方吗?

【问题讨论】:

这是一个很好的问题。我自己对这个确切的话题很好奇。我很想在我正在帮助建立的网站上实现与 *** 的徽章系统非常相似的东西。 【参考方案1】:

或者结合你的两个想法:

每次用户完成可以获得徽章的操作时,将用户放入一个列表中(如果他不在的话)并使用 cron 频繁处理此列表。

这样您就不必在用户每次完成操作时都进行检查,并且可以使 cron 作业保持合理。

当然也有变体:比如当列表达到一定数量时进行处理。或者在将用户添加到列表之前部分检查要求。

我想这取决于用户数量、可以完成的可用操作等。

【讨论】:

@ChrisSobolewski 你用过这个解决方案吗?用户如何注意到他们自动收到了特定的徽章? (也就是说,如果将 cron 设置为某个较大的间隔,他们会注意到一些延迟)。

以上是关于如何在对系统的影响最小的情况下为您的 APP 处理成就/徽章/奖励?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不影响内容不透明度(悬停时)的情况下为背景不透明度设置动画?

如何在不影响实时功能的情况下为 React 和 React-native 托管通用的 Firebase 后端代码?

如何在不加载图像的情况下为文件系统上的现有图像写入或修改 EXIF 数据?

如何使用上传密钥为您的应用签名

您需要为您的 APK 或 Android App Bundle 使用不同的版本代码

您将如何在您喜欢的数据库范式中为您的模型实施修订控制系统?