1

您将如何根据一天中的时间或日期来更新数据库中的属性。我有三个属性能量、饥饿和快乐,我想每小时减少十个,但我不知道该怎么做。我知道数据库中有时间戳,但我真的不知道如何使用它们。我也想每天根据他们的工作改变球员的技能。所以如果你有这份工作,每天智力加2。但我不知道如何每天添加 2。如果有人能帮我解决这个问题,我会很高兴的。我将不胜感激。

4

2 回答 2

3

几个选项:

  • cronjob:您可以设置您的 cronjob 以通过 SQL 脚本直接访问数据库(可能是所有设置中最简单的解决方案)或首先通过您的 rails 应用程序(例如,如果您需要在更新之前运行额外的业务逻辑数据库-您提到了有关根据用户作业更新数据库的内容)。后一种方法见这篇文章

  • 后台任务:查看Starling/WorklingBackgroundrb。您可以使用其中任何一个来运行可以定期更新数据库的后台任务。

于 2011-04-29T16:35:13.953 回答
1

有两种常见但根本不同的方式来实现这一点:

  • 在每个请求期间,模拟自上次请求以来经过的时间量。如果用户在三个小时内发出两个请求,则通过一次减去 30 个幸福(10/小时乘以 3 小时)来模拟三个小时的时间流逝。这占用的资源较少,但需要您多花点心思。像“每小时降低 10 个值”这样简单的事情并不难,但更复杂的交互更难建模。

  • 运行一个 cron 作业,每小时在你的程序中调用一个动作,每小时从每个帐户中扣除 10 个快乐值。从概念上讲,这更容易,但如果您有很多用户,尤其是当其中一些用户长时间闲置时,则会产生大量开销。

于 2011-04-29T16:26:25.100 回答