Batch テーブル
概要
最大 500 件の Page Import または Code2Des リクエストをプロジェクト単位で保存します。
Page Discoveryはバッチごとにホームページ1件を受け付けます。進捗とプレビューはS3から取得し、専用テーブルやDocumentDBコレクションは追加しません。
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL 許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| Batch | batch | id | string | ◯ | Client UUID / クライアント UUID (varchar(255)) |
||||
| organization_id | number | organization:id | Organization scope / 組織 | ||||||
| project_id | number | project:id | Project scope / プロジェクト | ||||||
| type | string | page_import, code2des, page_discovery (varchar(32)) |
|||||||
| request_hash | string | SHA-256 of normalized input or retry source batch / 入力または再試行元バッチの SHA-256 (varchar(64)) |
|||||||
| created_at | datetime | CURRENT_TIMESTAMP | Shared audit field / 共通監査項目 | ||||||
| updated_at | datetime | CURRENT_TIMESTAMP | Shared audit field / 共通監査項目 | ||||||
| deleted_at | datetime | ◯ | Soft delete / 論理削除日時 | ||||||
| created_by | string | Cognito subject (varchar(50)) |
|||||||
| updated_by | string | Cognito subject (varchar(50)) |
|||||||
| deleted_by | string | ◯ | Cognito subject (varchar(50)) |
リレーション
organization_id→organization.id(delete cascade)project_id→project.id(delete cascade)batch_item.batch_id→batch.id(delete cascade)
インデックス
- PRIMARY KEY (
id) - INDEX
batch_org_project_idx(organization_id,project_id)
備考
batchとbatch_itemは操作間で共用します。操作の追加には入力検証とジョブハンドラーの登録が必要ですが、バッチテーブルの追加は不要です。services/batch-operations.tsがジョブ準備、状態取得、再試行検証、デッドレター処理を登録します。処理状態と結果は各機能のジョブテーブルで管理します。- プラグインとスケジュールのため、既存の
/page-batchesAPI と内部ディスパッチパスは変更しません。 - 集計ステータスは子ジョブとディスパッチ情報から算出します。重複した集計値を保存しません。
- ディスパッチは 90 秒の期限付きで取得し、同時取得を行ロックで防止します。送信は最大 3 回試行し、同じジョブ ID とメッセージを再利用します。
- ワーカーは PostgreSQL に接続しません。完了結果は既存の webhook で子ジョブに反映します。