0

先日、友人がOGameというWebブラウザゲームをプレイすることを提案しました。あなたがそれを知らないなら、私はそれが何であるかをあなたに話します:あなたが鉱業工場、兵舎などのようなものを建てなければならないrtsゲーム。すべての建物にはビルド時間があり、ビルドが続くので、ビルド中にログオフできるという興味深い点があります。

このようなものは、dbmsを介して管理されていると思います。私は、共謀の終了時刻がある記録を持っています。建物をいつ更新するかを確認するにはどうすればよいですか?どのレコードを更新する必要があるかを毎秒チェックする外部アプリケーションが必要ですか?mysql5を使用して、このテーブルでプロシージャを起動する内部スケジューラを使用することは可能ですか?もしそうなら、それはベストプラクティスですか?

4

1 に答える 1

2

私は同様のゲームを作成し、作成の終了時間(および発生するその他のイベント)をイベントテーブルに保存しました。イベントテーブルで期限切れのレコードを定期的にチェックし、それに応じて動作するPHPデーモンを作成しました。

データベース自体でそれを行う方法を見つけることができませんでした(後で別のDBに移行したい場合は、書き直す必要があります)。cronされたスクリプトが重複する場合があります。デーモンは常にすべてを追跡し、イベントが処理されているよりも速くキューに入れられている場合はデバッグ情報を出力できます。また、cronを追加して、デーモンがまだ実行されていることを定期的に確認します。それ以外の場合は、デーモンを起動します。

PHPでデーモンを作成する(PHPを使用している場合)

お役に立てば幸いです。

于 2011-06-12T13:13:51.793 に答える