Skip to content

スケジュール公開

スケジュール公開を使うと、指定した日時に自動的にエントリを公開できます。キャンペーンページ・定期更新コンテンツ・プレスリリースなど、タイミングが重要なコンテンツ管理に活用してください。

今すぐやる(3 行)

  1. エントリをレビュー申請し、承認時に 公開日時 を指定する
  2. ステータスが scheduled になることを確認する
  3. 指定時刻後(最大約 5 分)に published と公開 API 反映を確認する

仕組み

draft(下書き)
  ↓ レビュー申請
pending_review(承認待ち)
  ↓ 承認(公開日時を指定)
scheduled(自動公開待ち)  ← publish_at = 指定した日時(UTC)
  ↓ Cron ジョブ(約 5 分間隔)
published(公開済み)      ← 指定日時以降に自動移行
  1. レビュアーがエントリを承認する際に 「公開日時」 を設定
  2. リビジョンのステータスが scheduled になる
  3. Cron ジョブが約 5 分間隔で実行し、publish_at <= 現在時刻 のリビジョンを published に移行
  4. 公開 API からコンテンツが取得可能になる

Cron の精度

Cron は約 5 分間隔のため、指定時刻から最大約 5 分の遅延が生じます。秒単位での精密な公開が必要な用途には向きません。

設定手順

ステップ 1: 通常どおりエントリを作成・申請

エントリを作成して「レビュー申請」を行います。スケジュール公開はレビュー申請・承認フローの延長線上にあります。

ステップ 2: 承認時に公開日時を設定

tenant_admin 権限を持つユーザーが承認ダイアログを開きます。

  1. 「承認する」ボタンをクリック
  2. 「スケジュール公開」をオンにする
  3. 公開日時を入力する
公開日時の例: 2025-02-01 09:00 JST
             (内部では 2025-02-01T00:00:00Z として保存)

タイムゾーンはブラウザのローカルタイムゾーンで入力できます。表示も常にローカルタイムで表示されます。

ステップ 3: スケジュールの確認

エントリ一覧でステータスが scheduled と表示されます。ステータスにカーソルを当てると、予定公開日時が表示されます。

スケジュールのキャンセル

scheduled 状態のリビジョンは以下の操作でキャンセルできます:

差し戻し(reject)

scheduledrejected に変更します。公開はキャンセルされ、編集者に差し戻されます。

scheduled → [reject] → rejected → [reopen] → draft

取り下げ(withdraw_review)

scheduleddraft に直接戻します。差し戻しと異なり、rejected 状態を経由しません。コンテンツの修正が必要なくなった場合に使用します。

一括スケジュール

エントリ一覧画面で複数のエントリを選択し、一括でスケジュールを設定できます。

  1. エントリ一覧で対象エントリをチェック
  2. 「一括操作」→「スケジュール公開」を選択
  3. 公開日時を入力して確定

複数のエントリを同一日時に一斉公開したい場合(例: 特定のキャンペーン開始日)に便利です。

一括操作の前提条件

一括スケジュールは pending_review(承認待ち)状態のエントリにのみ適用できます。draft 状態のエントリはレビュー申請後に操作してください。

公開済みエントリの再スケジュール

公開中のエントリのコンテンツを将来の特定日時に切り替えたい場合:

  1. 公開済みエントリを「編集して新しいリビジョンを作成」
  2. 変更後のコンテンツをレビュー申請
  3. 承認時にスケジュール日時を指定

指定日時までは現在公開中のコンテンツが配信され続け、日時を過ぎると新しいリビジョンに自動切り替わります。旧リビジョンはステータスが superseded(置き換え済み)になります。

Webhook との連携

エントリが scheduledpublished に自動移行した際も entry.published イベントが発火します。Webhook を設定しておけば、公開と同時に外部システムへの通知・CDN キャッシュのパージ・通知メールの送信などを自動実行できます。

json
{
  "event": "entry.published",
  "project_id": "project-uuid",
  "form_set_slug": "blog",
  "entry_slug": "my-scheduled-post",
  "entry_id": "entry-uuid",
  "revision_id": "revision-uuid",
  "timestamp": "2025-02-01T00:00:00.000Z"
}

詳細は Webhook ガイド を参照してください。

スケジュール公開のユースケース

ユースケース設定のポイント
プレスリリース解禁日時に合わせてスケジュール。担当者が前日までに承認しておく
キャンペーンページキャンペーン開始日に公開。関連エントリを一括スケジュール
定期コンテンツ毎週・毎月の更新を事前に承認しておき、当日自動公開
グローバル同時公開UTC で日時を指定し、タイムゾーンに関係なく全世界同時公開

セルフホスト環境での Cron 設定

セルフホスト環境では Cron ジョブが正しく設定されている必要があります。wrangler.toml に以下のトリガーを追加してください:

toml
[triggers]
crons = ["*/5 * * * *"]  # 予約公開(実装では他 Cron と併用)

Cloudflare Workers の Cron Triggers として設定されます。詳細はデプロイガイドを参照してください。

次のステップ