OK、Java/Hibernate/Spring/Quartz でゲーム サーバーを実行しています。ゲーム クロックはクォーツ タイマーで時を刻み、問題なく動作します。
ただし、特定の微調整可能な間隔で (リアルタイムではなくゲーム時間で) 発生する必要があることが他にもたくさんあります。
たとえば、24 時間のゲーム時間 (サーバーのクロック乗数に応じて、リアルタイムで約 47 分) ごとに、補給などの 1 日 1 回のさまざまなゲーム アクションが発生します。
さて、現在のシステムはかなり荒削りですが、うまくいきます - 私は基本的にcronであるテーブルをデータベースに持っています - 文字列キー、次のイベントの実行時間、そしてその後の次のイベントまでの時間、分、秒、そして日. タイム ティッカーはそれをチェックし、そのコード (イベント文字列キー) を含むメッセージをキューに送信し、現在の時刻に日、分、秒を追加し、それを次の実行時刻として設定します。
メッセージ リスナーはグロディな部分です。キーをオンにして、そのメソッドの 1 つをヒットします。
これで問題なく機能することがわかりましたが、実際にはうまくいきません。コードの各部分を独自の小さなクラスに含めるには、これに対する解決策は何ですか? これをカバーする設計パターンは何ですか?(確かにあると思います)。いろいろ考えはありますが、意見をお聞きしたいです。