コンテンツにスキップ

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-batches API と内部ディスパッチパスは変更しません。
  • 集計ステータスは子ジョブとディスパッチ情報から算出します。重複した集計値を保存しません。
  • ディスパッチは 90 秒の期限付きで取得し、同時取得を行ロックで防止します。送信は最大 3 回試行し、同じジョブ ID とメッセージを再利用します。
  • ワーカーは PostgreSQL に接続しません。完了結果は既存の webhook で子ジョブに反映します。