0

わかりました、タイトルが私の問題が何であるかを実際に伝えていないことは知っていますが、今試してみます. ゲームを開発しています。人々は自分の動物をレースに申し込むことができます。そのレースは特定の時間に始まります。すべてのユーザーが参加できるレースです。したがって、どの動物が 1 番目、2 番目などであるかの計算は、実行される php ファイルで行われ、2 分ごとに約 1 時間の新しい計算が行われます。したがって、30 の計算があります。しかし、オフク。このコードは、ログインしているユーザーには関連付けられていません。ログインしたユーザーは、LIVE ボタンをクリックして現在の結果を確認できます。

例: 今日の午後 17 時にレースがあります。4 人のプレーヤーから 15 匹の動物がサブスクライブし、すべての動物の様子を確認できます。

誰かに完全なコードを投稿してほしくありませんが、サーバーなどでphpコードを約1時間実行する方法を知りたいです(コードを実行し、2分間スリープし、新しい計算を行い、2分間スリープしますなど)。 . したがって、ユーザーには接続されません。

私はcronジョブについて考えましたが、それは本当にこれに対する解決策ではないと私は信じています. 読んでくれてありがとう:p

4

2 に答える 2

0

2 つのアプローチ:

  1. いつ実行され、誰が実行するかに関係なく、常に同じ結論に達するアルゴリズムを使用します。開始パラメーターを定義するだけで、必要に応じていつでも結果 (または開始と終了の間の任意の時点での中間結果) を計算できます。したがって、ユーザーはいつでもあなたのサイトにアクセスでき、アルゴリズムは固定された開始条件からその場で現在の順位を計算します。
  2. または、すべてのデータを中央のデータ ストアに保持し、特定の間隔で実際にデータを更新します。どのユーザーもいつでも現在の順位を要求でき、データストアからの最新のデータが使用されます。実際にはリアルタイムでシミュレーションを実行していない可能性が高いため、上記の特性を持つアルゴリズムが必要です。ちょうど x 秒ごとに計算を再実行し、最後に実行したときから何が変わったと思われるかを計算します。

本質的に、使用するアルゴリズムには、このアプローチが必要です。「リアルタイム」プログラムでさえ、値を以前の状態から少しずつ変化させながら、単純にループし続けます。これらの変更の間隔は、必要になるまで何も計算しないところまで、任意に伸ばすことができます。それまでは、必要なすべてのデータをデータベースに保存するだけです。

于 2012-10-16T09:08:39.890 に答える
0

Cronジョブは私が思うライトな方法です。アルゴリズムが苦手な場合は、これをチェックしてください:方法: Cron ジョブを使用した PHP異なる cron ジョブを使用する必要があるかもしれません。

于 2012-10-16T09:19:36.080 に答える