Appearance
ADM-013-2 birthday_seed_run_by_url(指定 URL でシード実行)
概要
任意の URL を指定してスロカレ互換のデータを取得し db_birthday へ一括投入する。開発・検証用途でも利用可能。クールダウン中または実行中はブロックされる。
POST パラメータ
| フィールド | 必須 | 型・制約 | 説明 |
|---|---|---|---|
action | ○ | 文字列 | birthday_seed_run_by_url |
nonce | ○ | 文字列 | birthday_seed_admin で発行した nonce |
url | ○ | 文字列(非空、sanitize 後も非空) | シードデータ取得先 URL |
成功時 data
| 論理名 | 物理名 | 型 | 説明 |
|---|---|---|---|
| メッセージ | message | string | Messages::BIRTHDAY_SEED_URL_RUN_SUCCESS(処理件数・挿入件数を埋め込んだ文言) |
| 処理件数 | processed | int | シードサービスが処理したエントリ数(result['processed']) |
| 挿入件数 | inserted | int | DB に実際に挿入されたエントリ数(result['inserted']) |
| 挿入エントリ数 | fetched_rows_inserted | int | 取得行のうち挿入されたエントリ数(result['inserted_entries']) |
| スキップエントリ数 | fetched_rows_skipped | int | 取得行のうちスキップされたエントリ数(result['skipped_entries']) |
| 取得行総数 | fetched_rows_total | int | 取得行の総数(result['processed']) |
| クールダウン秒数 | cooldown_seconds | int | 次回実行可能になるまでの秒数(HOUR_IN_SECONDS = 3600) |
失敗・ブロック(success: false の data に含み得るキー)
| 条件 | message の内容 |
|---|---|
| AJAX コンテキストでない | Messages::AUTH_FAILED |
| nonce 不正 | Messages::AUTH_FAILED |
manage_options 権限なし | Messages::PERMISSION_DENIED |
url が空 | Messages::BIRTHDAY_SEED_URL_REQUIRED |
| クールダウン中 | Messages::BIRTHDAY_SEED_COOLDOWN_ACTIVE(残時間の文言付き) |
| 実行中ロック取得失敗 | Messages::BIRTHDAY_SEED_RUN_IN_PROGRESS |
シードサービスで \InvalidArgumentException | 例外の getMessage() をそのまま返す |
シードサービスで \Throwable | 例外の getMessage()(error_log に [BirthdaySeedAdminPage][ajax_run_seed_by_url] 先頭で記録) |
補足: 成功時は set_transient( 'birthday_seed_cooldown', time(), HOUR_IN_SECONDS ) でクールダウンを設定し、finally ブロックで delete_option( 'birthday_seed_cooldown_running' ) を必ず実行する。\InvalidArgumentException は URL 不正など呼び出し側の入力エラーを想定し、そのままメッセージを返す。