Skip to content

ADM-015 日別記事データ取得 自動実行設定管理画面

概要

  • 日別記事データ取得処理を、毎朝指定時刻に自動実行するための設定を管理する画面。
  • 本画面では「自動実行 ON/OFF」「実行時刻(HH:MM)」「再試行回数」「設定保存」を提供する。
  • 自動実行の対象記事は、実行日時の前日の日付記事(前日記事)とする。
  • 実行時刻のデフォルト値は 08:00 とし、保存済み設定がある場合は保存値を優先表示する。
  • 保存・検証ルール、エラーメッセージ表示方針、保存後の反映タイミングを本設計書で定義する。
  • 記載ルールは 画面設計書フォーマットガイド(共通) を正とする。

ワイヤーフレーム

  • 参照実装: mockups/Adm14AutoRunSettingsWireframe/Adm14AutoRunSettingsWireframe.tsx

画面仕様

ブロック一覧

ブロックIDブロック名表示内容初期値ユーザー操作アクション
B-1保存結果通知保存成功/失敗メッセージを表示する通知エリア。非表示--
B-2自動実行 ON/OFF毎朝の自動データ取得を有効にする チェックボックスを表示。保存済み設定(未設定時OFF)ON/OFF を切り替える。-
B-3実行時刻HH:MM(24時間)入力欄を表示。説明文として「例: 08:00」を併記。保存済み設定(未設定時08:00)時刻を入力する。-
B-430分再試行回数取得失敗時に30分ごとに再試行する回数 入力欄を表示。保存済み設定(未設定時0回)回数(整数)を入力する。-
B-5対象記事ガイダンス自動実行対象は実行日時の前日記事です を画面上に固定表示する。常時表示--
B-6入力エラーメッセージバリデーション失敗時のエラーメッセージを一覧表示。非表示--
B-7設定を保存設定保存ボタンを表示。常時表示押下時に設定保存処理を実行する。A-1

入力制約・表示ルール

  • B-2(自動実行 ON/OFF)
    • 未チェック(OFF)の場合は自動実行スケジュールを無効化する。
    • チェック(ON)の場合のみ、B-3 の入力値で次回以降のスケジュールを設定する。
  • B-4(30分再試行回数)
    • 0 以上の整数を受け付ける(0 は再試行しない)。
    • 1 以上の場合、定刻実行で未取得のホールがあるときのみ 30 分間隔で再試行ジョブを登録する。
    • 再試行時は、直前までに取得完了したホールを除外し、未対応ホールに対してのみ処理する。
    • 取得処理でエラーが発生した場合は、その時点で再試行を停止する。
  • B-3(実行時刻)
    • B-2 が ON のとき必須。HH:MM(24時間表記)に一致し、HH=00〜23MM=00〜59 を満たすこと。
    • B-2 が ON で空文字・形式不正・範囲外値の場合は保存エラーとする。
    • B-2 が OFF のときは B-3 は未入力を許容し、空値として保存・保持する。
    • 時刻の解釈は WordPress のサイトタイムゾーン設定に従う(current_time() 等の WP 設定値を使用し、JST をハードコードしない。プロジェクトの運用想定は JST)。
  • エラーメッセージ方針
    • 複数エラー時は B-6 に箇条書きで全件表示する。
    • 文言はユーザーが修正方法を判断できる具体性を持たせる。
      • 例: 実行時刻は HH:MM 形式で入力してください。
      • 例: 実行時刻は 00:00 から 23:59 の範囲で入力してください。
  • 保存成功時の表示
    • B-1自動データ取得設定を保存しました。 を表示する。
    • 画面再表示後は保存済みの ON/OFF・実行時刻を反映する。

処理連携仕様

アクション一覧

A-1

B-7(設定を保存)押下時に、同一管理画面への同期 POST で自動実行設定を保存する。

リクエスト

requestParam本画面の値(どの部品から何を送るか)
daily_data_fetch_auto_run_nonce隠しフィールド。常に必須。検証アクション: daily_data_fetch_auto_run_settings
daily_data_fetch_auto_run_enabledB-2 の設定値(チェック時 1、未チェック時は未送信。サーバー側では未送信を false として扱う)。DailyArticleAutoCreateOptions::save_from_post と同様に、呼び出し側は未送信/空値を boolean false として扱う。
daily_data_fetch_auto_run_timeB-3 の設定値(HH:MM
daily_data_fetch_auto_run_retryB-4 の設定値(回数)。0 以上の整数を送信する。未送信時はサーバー側で 0(再試行なし)として扱う。

レスポンス

項目内容
成功時本画面へリダイレクトし、B-1 に保存成功通知を表示する。
失敗時本画面へリダイレクトし、B-6 にエラーを表示する。入力値は transient で復元する(有効期限: 60秒)。transient キーはユーザーID(必要に応じて画面ID併用)を含めてユーザー単位で分離し、復元処理完了後は該当 transient を即時削除する。
画面更新時の処理同期 POST + リダイレクト方式のため、レスポンス本文による部分更新は行わない。

保存後の反映タイミング

  • ON/OFF または時刻変更を保存した時点で、次回実行分のスケジュール登録内容を更新する。
  • 再試行回数の変更を保存した時点で、再試行ジョブの登録条件(回数上限)を更新する。
  • 保存時刻を基準に、直近の未来時刻を次回実行時刻として再計算する。
    • 例: 07:30 に 08:00 を保存した場合、当日 08:00 を次回実行に設定。
    • 例: 09:30 に 08:00 を保存した場合、翌日 08:00 を次回実行に設定。
  • 定刻実行で一部ホールのみ失敗した場合、再試行回数が 1 以上のときは未対応ホールのみを再試行対象としてキューイングする。

外部インターフェース

管理画面 URL

項目
URL/wp-admin/edit.php?post_type=daily_article&page=daily-data-fetch-auto-run-settings
権限manage_options
備考日別記事関連の管理メニュー配下に配置する想定