Skip to content

[Step 5] Job処理システム #26

@takaokouji

Description

@takaokouji

概要

Issue smalruby/smalruby3-gui#417 の Step 5: Job処理システムを実装します。

Solid Queueを導入し、ゲーム実行をバックグラウンドJobで処理する仕組みを構築します。

実装内容

1. Solid Queue導入

  • Solid Queue gem 追加
  • 設定ファイル作成
  • Job Queue用テーブル作成
  • Worker プロセス設定

2. ゲーム実行Job実装

  • GameExecutionJob クラス実装
  • Job実行フロー設計
  • Job引数・戻り値設計
  • Job状態管理

3. ターンごとのDB保存処理

  • ターン実行→DB保存の処理フロー
  • GameTurn レコード作成
  • Player 状態更新
  • Enemy 状態更新
  • GameEvent 記録

4. Job監視・エラーハンドリング

  • Job実行状況の監視機能
  • 失敗時のリトライ設定
  • エラー時の適切な状態更新
  • タイムアウト処理

5. リアルタイム状態更新

  • Job実行中の進捗状況更新
  • ゲーム状態の定期的な更新
  • 完了通知システム
  • 中断・キャンセル機能

6. パフォーマンス最適化

  • Job実行の並列化検討
  • DB書き込みの最適化
  • メモリ使用量の最適化
  • 大量Job処理時の負荷分散

完了条件

  • Solid Queue が正常に動作する
  • ゲーム実行がJob経由で正常に動作する
  • ターンごとの状態がDBに正しく保存される
  • Job監視・エラーハンドリングが動作する
  • パフォーマンステストがパスする

関連Issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Icebox

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions