Cron 作业
PulseHub 使用 cron 执行器(cron.php)来处理后台任务 — 轮询邮箱、处理自动化、重试失败的 webhook 以及清理旧数据。
概述
cron.php 支持两种模式:
| 模式 | 工作方式 | 最适合 |
|---|---|---|
| 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()以防止计时攻击