オンラインのマルチプレイヤー ボード ゲームを構築しており、新しいボードを作成する機能があります。ラウンドごとにそれを行う必要がありますが、すべてのユーザーに対して一度だけ実行することはできないようです。ゲームが配置されているページでタイマーが 0 に達したときに関数を呼び出すので、そのページにいるすべてのユーザーに対して実行されます。
このように、その時点でゲームをプレイしているユーザーの数だけ新しいボードを生成する関数ですが、ボードを 1 つだけ生成したいのです。
それで、私の質問は、開いているページの数だけではなく、PHP関数を1回だけ実行させるにはどうすればよいですか?
システムの編集: ユーザーは 90 秒間プレイし、ラウンドの結果が表示されるまで 15 秒間待機し、その後、すべてが何度も繰り返されます。また、ラウンドの途中でページに入ると、新しいラウンドが始まるまで待つか、その時点でラウンドに入るかを選択できます。そのため、関数をどこで呼び出すかわかりません。結果が表示される一時停止メニューの開始時に呼び出してみましたが、すべてのユーザーに対して機能を実行するだけです。すべての実行の最後に1つのボードを取得するため、まだ機能しますが、特にそうなる場合は正しくありません数百人以上がプレイすると、ボードは数百回生成されます。また、ボードを生成するのは、サーバー上に XML を作成する c++ .exe です。PHP からその exe を実行し、いくつかの追加作業も行います。
その関数をどこで呼び出すかわかりません。あなたが言ったようにボードを事前にレンダリングするにはどうすればよいですか? 関数は、一部のユーザーが実行するためにアクセスする必要があるページ上にある必要があります。それは気が遠くなるようなものです。
また、関数が以前に呼び出されたかどうかを確認するためにデータベースに情報を追加しようとしましたが、すべてのユーザーに対して同時に発生します。