![]() |
1
5
运行一个计划任务来执行游戏中的更新,在任何时间间隔内,都会给你大量的数据库使用。如果您的游戏逻辑依赖于所有这些数据库值同时更新(很可能,如果您正在运行基于间隔的更新),那么只要cronjob运行,您就必须安排停机时间。当时间变长时,随着玩家基数的增加,这会变得非常烦人。 如果您试图减少数据库开销,那么应该使用值的上次更新时间和增长率存储值,并且只在增长量或增长率发生变化时更新这些行。 例如,一个每分钟5金的金库,只有玩家从中提取黄金时才会更新。当您需要知道当前金额时,将根据上次更新时间、当前时间、上次更新时存储的金额以及增长率进行计算。 随时间变化而不需要交互的数据不属于数据库。它属于你游戏的逻辑端。当一个玩家执行一个你需要记住的活动,或者计算变得过于繁琐而无法再次生成时,那就是你存储它的时候。 |
|
2
2
如果我理解你的问题是正确的,你应该看看芹菜,它是一个分布式任务队列。 http://ask.github.com/celery/ |