我想使用基于时间的属性启动一个新项目,但我想确定最好的方法。基本上,我面临两个主要问题(简化,让我们使用RPG-ish词汇表)
首先,每个用户都有一个gold_coins
整数属性。我想定期增加这个数额。起初,我想过使用延迟的工作,但浏览SO,看起来这是件坏事,正如回答here
其次,用户可以生产单位。每个unit
需要一定的时间来生成,由production_time
属性定义。到目前为止,我想到了创建一个Production
模型,每次生成一个单元时创建一个新模型。生产具有start_datetime
,并使用单位end_datetime
计算production time
。我的问题是,我如何跟踪经过的时间,以便在制作结束时,它开始匹配的工作(再一次,延迟的工作似乎完全适合,但似乎他们在开发人员中并不特别受欢迎)。
答案 0 :(得分:0)
没有延迟工作,但我建议依靠操作系统级时间/间隔机制,例如CRON作业,特定于操作系统的调度引擎等。
您可以轻松地使用业务逻辑编写rake任务,并在CRON中调用此任务。这将使您的整体逻辑解耦到一个良好的水平。
此外,系统级调度引擎更易于配置和维护。