在mysql5中有可能有一个“内部”的cron吗?

时间:2011-06-12 12:49:53

标签: scheduler mysql5

有一天,一位朋友建议玩一款名为OGame的网络浏览器游戏。如果你不知道它我会告诉你它是什么:一个rts游戏,你必须建立像采矿工厂,军营等的东西。有趣的是,每栋建筑都有建造时间,你可以在建筑时注销,因为它会继续运行。

我认为这样的东西是通过dbms来管理的。我有记录,我有结束时间。如何检查何时更新建筑物?我是否需要一个外部应用程序,每秒检查哪些记录需要更新? mysql5是否可以有一个内部调度程序在该表上启动一个过程?如果是这样,这是最佳做法吗?

1 个答案:

答案 0 :(得分:2)

我构建了一个类似的游戏,并将构建结束时间(以及其他要触发的事件)存储在事件表中。我编写了一个PHP守护程序,它定期检查事件表中是否存在过期记录,并相应地对它们进行操作。

我找不到在数据库本身中执行此操作的方法(如果我以后想要迁移到另一个DB,则需要重写)。 cron'd脚本可能会重叠。守护程序可以始终跟踪所有内容,并在事件排队的速度超过正在处理的速度时输出调试信息。我还添加了一个cron来定期检查我的守护进程是否仍在运行,否则启动它。

Creating a daemon in PHP(如果您使用的是PHP)

希望有所帮助。