Appearance
ADM-001-2 pworld_archive_job_status
概要
手動取得ジョブの状態をポーリングする。完了時はジョブ結果に加え、指定に応じてメール一覧ペイロード(recent / mail_list_*)をマージして返し得る。
POST パラメータ
| フィールド | 必須 | 説明 |
|---|---|---|
job_id | ○ | ポーリング対象のジョブ ID(空は不可) |
mail_list_subject_search | 任意 | 完了時に一覧をマージする場合の件名検索(ajax_mail_list と同じ解釈) |
mail_list_date_from / mail_list_date_to | 任意 | 受信日範囲フィルタ(Y-m-d) |
wp_optionsテーブルからデータ取得
| カラム名 | where | 検索値 |
|---|---|---|
option_name | ○ | job_id |
option_value |
pworld_mail_archiveテーブルからデータ取得
| カラム名 | where | 検索値 |
|---|---|---|
subject | ○ | mail_list_subject_search |
received_date | ○ | mail_list_date_from, mail_list_date_to |
created_at |
成功時 data(ジョブ状態 running)
| 論理名 | 物理名 | 型 |
|---|---|---|
| ジョブ状態 | status | string(固定値 running) |
| メッセージ | message | string(PworldArchiveCopy::PWORLD_ARCHIVE_JOB_RUNNING) |
| 開始時刻 | started_at | int|null(Unix 秒。PworldArchiveJobState の開始時刻) |
stale 自動復旧(Issue #2007)
running のまま PworldArchiveJobState::STALE_THRESHOLD_SECONDS(720 秒、MAX_RUNTIME_SECONDS 600 + 余裕)を超えた場合、本エンドポイントは状態を error に更新し、失敗レスポンスを返す(ポーリング中の自動復旧)。
| 論理名 | 物理名 | 型 |
|---|---|---|
| メッセージ | message | string(PworldArchiveCopy::PWORLD_ARCHIVE_JOB_STALE_TIMEOUT) |
| 詳細 | error_detail | string(同上) |
| エラーコード | error_code | string(固定値 job_stale_timeout) |
| 開始時刻 | started_at | int|null(復旧前の開始時刻) |
成功時 data(ジョブ状態 done)— 手動 IMAP 取得(job_type=imap_fetch)
ジョブ完了時は、集計値に加え メール一覧(build_mail_list_ajax_payload_for_page と同形)をマージして返す。一覧マージに失敗しても 成功レスポンス本体は維持され、ログに記録されるのみ。
mail_list_per_page の意味および recent の要素数については ADM-001-13 pworld_archive_mail_list を参照(本 done 応答と同一の一覧ペイロードである)。
| 論理名 | 物理名 | 型 |
|---|---|---|
| ジョブ状態 | status | string(固定値 done) |
| サマリメッセージ | message | string(取得・保存・スキップ件数を含む整形文言) |
| 取得件数 | fetched | int |
| 保存件数 | saved | int |
| スキップ件数 | skipped | int |
| クールダウン秒 | cooldown_seconds | int(実装定数 COOLDOWN_SECONDS、概ね 60) |
| 一覧行データ | recent | object の配列(管理画面一覧 1 行。entity_to_admin_row_array 相当) |
| 一覧総件数 | mail_list_total | int |
| 一覧ページ番号 | mail_list_page | int |
| 1 ページあたり件数 | mail_list_per_page | int(20) |
| 一覧総ページ数 | mail_list_total_pages | int |
| 表示範囲(開始) | mail_list_showing_from | int |
| 表示範囲(終了) | mail_list_showing_to | int |
| フィルタ有効 | mail_list_filter_active | bool |
| 件名検索(エコー) | mail_list_subject_search | string |
| 受信日 From(エコー) | mail_list_date_from | string(未指定時は空文字) |
| 受信日 To(エコー) | mail_list_date_to | string(未指定時は空文字) |
成功時 data(ジョブ状態 done)— バルク記事連携(job_type=bulk_article_link、Issue #2052)
| 論理名 | 物理名 | 型 |
|---|---|---|
| ジョブ状態 | status | string(固定値 done) |
| メッセージ | message | string(PWORLD_BULK_ARTICLE_LINK_SUCCESS、更新件数付き) |
| 更新件数 | updated_count | int |
上記に加え、メール一覧ペイロード(recent / mail_list_*)をマージする。ページ・フィルタはジョブ params(開始時に保存)と POST を併用。一覧マージ失敗時も成功本体は維持。
running 時の message は job_type に応じて PWORLD_ARCHIVE_JOB_RUNNING または PWORLD_BULK_ARTICLE_LINK_JOB_RUNNING。
失敗
success: false のとき、data に少なくとも message(汎用エラー)が含まれる。ジョブ状態が error 等のときは error_detail に内部メッセージ文字列が付く場合あり。
| 条件 | メッセージ例 |
|---|---|
job_id 不一致・状態なし | PworldArchiveCopy::PWORLD_ARCHIVE_JOB_NOT_FOUND |
done だが result が壊れている | PworldArchiveCopy::PWORLD_ARCHIVE_RUN_ERROR |
running が stale(job_stale_timeout) | PworldArchiveCopy::PWORLD_ARCHIVE_JOB_STALE_TIMEOUT |
bulk ジョブが error | PworldArchiveCopy::PWORLD_BULK_ARTICLE_LINK_FAILED |