php - 为所有用户执行一次函数

时间:2013-10-06 18:15:17

标签: php

我正在建立一个在线多人桌面游戏,我有一个创建新棋盘的功能。我需要在每一轮之后做到这一点,但我似乎无法让它对所有用户只执行一次。我在计时器达到0时,在游戏所在的页面上调用该函数,因此它对该页面上的每个用户执行。

因此,该功能会生成一个新的主板,就像那时用户正在玩游戏一样,但我希望它只生成一个主板。

所以,我的问题是如何让PHP函数只执行一次而不是打开页面那么多次?

在系统上编辑:用户玩90秒然后他们等待15秒,同时他们看到圆形结果,然后整个事情一次又一次地重复。如果您在该轮中间进入该页面,您可以选择等到新一轮开始或然后进入该轮。所以我不知道在哪里调用该函数。当暂停菜单开始显示结果时,我尝试调用它,但它只是为所有用户执行该功能。它仍然有效,因为我在所有执行结束时仍然得到一块板,但它不对,特别是如果有超过数百人在玩,董事会将产生数百次。而且,生成该板的是c ++ .exe,它在服务器上创建XML。我从PHP执行该exe并执行其他一些操作。

我不知道在哪里调用该函数。我怎么像你说的那样预先登上董事会?该功能仍然必须位于某个用户必须访问的页面才能执行。它令人难以置信。

我还尝试在数据库中添加信息以查看之前是否已调用该函数,但同时仍然会对所有用户进行调用。

2 个答案:

答案 0 :(得分:1)

我认为我们需要大量有关您用来提供实际答案的系统的更多信息,但一般程序可能是在特定游戏中的客户首次报告到特定结束时生成董事会回合。保存该板的信息,以及数据库表中的游戏ID和轮数。然后,每当同一游戏中的客户报告完成同一轮时,向他们发送已保存的板,而不是再次生成新的板。

答案 1 :(得分:0)

使用数据库保存您的电路板

当倒计时达到0

检查数据库中是否有电路板,如果没有创建新电路板(请注意,如果创建新电路板需要很长时间,则可以预先渲染电路板)。