您将如何根据一天中的时间或某天更新数据库中的属性。我有三个属性能量,饥饿和幸福,我想每小时减少十,但我不知道如何去做这件事。我知道数据库中有时间戳,但我真的不知道如何使用它们。另外,我想根据自己的工作每天改变球员技能。所以,如果你有这份工作,每天要加2智力。但我不知道如何每天添加2。如果有人能帮我解决这个问题,我会很高兴。我将不胜感激。
答案 0 :(得分:3)
有两种选择:
cronjob:您可以设置您的cronjob直接通过SQL脚本访问数据库(可能是设置方面最简单的解决方案)或首先通过您的rails应用程序(例如,如果您需要在更新数据库之前运行其他业务逻辑 - 您提到了一些基于用户作业更新数据库的内容。对于后一种方法,请参阅此post。
后台任务:查看Starling/Workling或Backgroundrb。您可以使用其中任何一个来运行可以定期更新数据库的后台任务。
答案 1 :(得分:1)
实现这一目标有两种常见但根本不同的方法:
在每个请求期间,模拟自上次请求以来经过的时间量。如果用户相隔三小时发出两个请求,则模拟三个小时的时间,一次减去30个幸福(10个小时,每小时3个小时)。这种资源消耗较少,但需要您多考虑一下。对于“每小时降低10个值”这样简单的事情并不困难,但更复杂的交互更难以建模。
运行一个cron作业,每小时,每小时调用一次程序中的操作,从每个帐户中扣除10个快乐。这在概念上更容易,但如果你有很多用户,特别是当其中一些用户长时间闲置时,会产生很多开销。