只需为所有用户执行一次函数


execute a function just once for all users

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

因此,该函数生成新棋盘的

次数与当时玩游戏的用户一样多,但我希望它只生成一个棋盘。

所以,我的问题是我怎样才能让 PHP 函数只执行一次,而不是像打开页面那样多次?

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

我不知道在哪里调用该函数。我如何像你说的那样预渲染板?该函数仍然必须位于某个用户必须访问才能执行的页面上。这令人难以置信。

我还尝试在数据库中添加信息以查看该函数以前是否被调用过,但它仍然同时发生在所有用户身上。

我认为我们需要更多关于你正在使用的系统的信息来给出实际答案,但一般程序可能是在特定游戏中的客户第一次报告到达特定回合结束时生成一个板子。将该棋盘的信息以及游戏 ID 和轮数保存在数据库表中。然后,每当同一游戏中的客户报告完成同一轮时,向他们发送保存的棋盘,而不是再次生成新的棋盘。

使用数据库将电路板保存在

当倒计时达到 0 时

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