Php 创建MySql作业或循环谁';It’他经常检查表上的字段
我目前正在开发一款浏览器多人游戏,在这个概念上有一些问题。这是一个我喜欢的地方(http://www.ogame.org/)使用PHP/Js/MySql 我想要的是,玩家将启动一个动作(砍柴),这个动作将在XX分钟后结束 因此,基本上我的想法是创建一个动态cron,它将在XX分钟后启动一个SQL查询,将DB XX resources添加到播放器中 另一个问题是,玩家可以用他们的船在海上航行,因此,如果他们要移动到某个目的地,例如,他们将每5分钟移动XX米 所以问题是所有的玩家都能在海上看到彼此。所以基本上,我不能等待10分钟来增加XX米的球员船,它必须在5分钟后完成 编辑:所以基本上我需要一个像MySql一样的工作,或者一个不断检查表的无限循环。此表将包含所有操作的结束时间(时间戳)。因此,当这个时间与当前时间相对应时,作业必须执行Sql查询 希望你们理解我的问题;) 您想要的是一个“作业系统”,或“排队系统”,或“事件系统”,或“消息队列” 这些可能非常复杂,但简单的版本可能如下所示:Php 创建MySql作业或循环谁';It’他经常检查表上的字段,php,mysql,jobs,Php,Mysql,Jobs,我目前正在开发一款浏览器多人游戏,在这个概念上有一些问题。这是一个我喜欢的地方(http://www.ogame.org/)使用PHP/Js/MySql 我想要的是,玩家将启动一个动作(砍柴),这个动作将在XX分钟后结束 因此,基本上我的想法是创建一个动态cron,它将在XX分钟后启动一个SQL查询,将DB XX resources添加到播放器中 另一个问题是,玩家可以用他们的船在海上航行,因此,如果他们要移动到某个目的地,例如,他们将每5分钟移动XX米 所以问题是所有的玩家都能在海上看到彼此。
- 如果需要在多个服务器之间分配任务,会发生什么情况
- 当守护进程处理事件的速度比插入新事件的速度慢时,会发生什么情况
- 如果需要在多个服务器之间分配任务,会发生什么情况
- 当守护进程处理事件的速度比插入新事件的速度慢时,会发生什么情况
避免这些方法的更好的解决方案是向第三方管理的消息队列服务(如AmazonSQS)投入一些资金,或者使用支持这种服务的预构建框架(如gearman)。这样,您就可以从多台机器上一次智能地提取一个事件,而这些机器实际上不必关心系统的积压程度——它们只需要愉快地处理事件。您可以在数据库中设置一个事件表,而不是在将来运行特定的脚本。因此,当用户启动砍柴任务时(比如上午10:30),您将添加一个事件,以在上午10:35增加他们的木材平衡5
然后您就有了一个每分钟都在运行的cron脚本。它获取当前时间,并在数据库表中查找时间小于或等于当前时间的任何事件。然后执行该操作并从表中删除事件记录。或者,如果您需要为您的玩家保留这些事件的历史记录,您可以创建一个名为processed的列来跟踪事件是否已执行。在这种情况下,cron脚本会在当前时间之前查找未处理的事件。您可以在数据库中设置一个事件表,而不是在将来运行特定的脚本。因此,当用户启动砍柴任务时(比如上午10:30),您将添加一个事件,以在上午10:35增加他们的木材平衡5
然后您就有了一个每分钟都在运行的cron脚本。它获取当前时间,并在数据库表中查找时间小于或等于当前时间的任何事件。然后执行该操作并从表中删除事件记录。或者,如果您需要为您的玩家保留这些事件的历史记录,您可以创建一个名为processed的列来跟踪事件是否已执行。在这种情况下,cron脚本会在当前时间之前查找未处理的事件。为什么不在数据库中设置一个时间,在该时间之后“将添加资源”(即更改变为活动状态)?只要有一个带有超时列的队列表,当您检查资源级别时