Cron ジョブ
PulseHub は cron ランナー(cron.php)を使用してバックグラウンドタスクを処理します — メールボックスのポーリング、オートメーションの処理、失敗した webhook のリトライ、古いデータのクリーンアップ。
概要
cron.php は2つのモードをサポートしています:
| モード | 動作方法 | 最適な用途 |
|---|---|---|
| Web URL | ブラウザまたはホスティングパネルから cron.php?token=YOUR_SECRET&job=all を呼び出す | 共有ホスティング(cPanel、Plesk) |
| CLI | ターミナルから php cron.php all を実行 | VPS / 専用サーバー |
利用可能なジョブ:
| ジョブ | 説明 |
|---|---|
all | すべてのジョブを順番に実行 |
email | アクティブな IMAP メールチャネルをポーリング |
automations | 保留中のオートメーションイベントを処理 |
webhooks | 失敗した webhook イベントをリトライ |
cleanup | 古い SSE/オートメーション/webhook イベントを削除 |
セットアップ — 共有ホスティング(cPanel / Plesk / DirectAdmin)
オプション A: URL ベースの Cron(推奨)
- ホスティングパネルにログイン
- Cron Jobs に移動
- スケジュールを毎分(
* * * * *)に設定 - 以下を貼り 付け:
wget -q -O /dev/null "https://yourdomain.com/cron.php?token=YOUR_CRON_SECRET&job=all"
または curl を使用:
curl -s "https://yourdomain.com/cron.php?token=YOUR_CRON_SECRET&job=all" > /dev/null 2>&1
ヒント: PulseHub の設定 → Cron Job URL から完全な URL をコピーしてください。
オプション B: CLI ベースの Cron
php /home/yourusername/public_html/cron.php all
オプション C: 外部 Cron サービス
cron-job.org、EasyCron、または SetCronJob を使用し、cron URL を指定します。1〜5分ごとに実行するよう設定してください。
セットアップ — VPS / 専用サーバー
* * * * * php /var/www/pulsehub/cron.php all >> /var/log/pulsehub_cron.log 2>&1
ジョブ詳細
email — IMAP ポーリング
すべてのアクティブなメールチャネルに IMAP で接続し、未読メッセージを検索して会話としてインポートします。imap 拡張機能がない場合、ジョブはスキップメッセージを記録して正常に終了します。
automations — 保留中のイベント処理
最大 100 件の保留中イベントを選択し、ルールを評価してアクションを実行します。二重処理を防ぐため、評価前にイベントは processing とマークされます。
webhooks — 失敗したイベントのリトライ
失敗した webhook をリトライします(24 時間以内に最大 5 回)。
cleanup — 古いデータの削除
- 24 時間以上経過した SSE イベント
- 7 日以上経過した処理済みオートメーションイベント
- 30 日以上経過した処理済み webhook イベント
セキュリティ
- Web モードはシークレットトークンが必要です(インストール時に生成、
config/app.phpに保存) - CLI モードはトークン不要
- トークンの比較はタイミング攻撃を防ぐため
hash_equals()を使用