队列与工作进程
设置 → 高级 → 队列与工作进程显示您的 LeadHub 安装的当前队列驱动程序、连接类型和工作进程状态。
队列的作用
队列处理 LeadHub 中的所有后台工作:
| 任务 | 队列优先级 |
|---|---|
| 发送邮件(事务性、序列) | 高 |
| 处理来自线索来源的入站 Webhooks | 高 |
| 调用出站集成 API(CRM 同步、Zapier 等) | 默认 |
| 运行自动化步骤(延迟、操作) | 默认 |
| 生成报告和导出 | 低 |
| 发送短信/WhatsApp 消息 | 默认 |
当线索到达或自动化触发时,操作会被排队而不是同步执行。这可以防止慢速 API 调用阻塞 Web 请求。
队列驱动程序
| 驱动程序 | 描述 |
|---|---|
| 文件(数据库) | 默认。任务存储在 jobs 数据库表中。由 cron 任务处理。无需 Redis 或 Supervisor。 |
| Redis | 更快的内存队列。需要服务器上的 Redis 和 Supervisor(或 Horizon)。推荐用于高流量安装。 |
| 同步 | 在进程内立即执行任务。仅用于测试环境。请勿在生产环境中使用。 |
共享主机: LeadHub 默认的基于文件的队列可在任何具有 cron 任务的共享主机上运行。无需 Redis、Supervisor 或 SSH 访问。
处理队列(Cron 任务)
队列由必须在服务器上配置的单个 cron 任务处理。
cPanel 共享主机
- 登录 cPanel → Cron 任务。
- 将计划设置为每分钟(
* * * * *)。 - 将命令设置为:
将路径替换为您的 LeadHub 安装的绝对路径。
php /home/yourusername/public_html/cron.php >> /dev/null 2>&1
完整的 cPanel 说明请参阅 共享主机指南。
VPS/独立服务器(Linux crontab)
* * * * * cd /var/www/leadhub && php artisan queue:work --once --max-time=55 >> /dev/null 2>&1
或使用进程管理器(Supervisor):
[program:leadhub-worker]
command=php /var/www/leadhub/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
user=www-data
工作进程状态页面
管理面板中的队列与工作进程页面显示:
| 信息 | 描述 |
|---|---|
| 连接 | 当前队列连接名称(来自 config/queue.php) |
| 驱动程序 | 使用中的队列驱动程序(database、redis、sync) |
| Horizon | 是否安装了 Laravel Horizon(用于基于 Redis 的高级监控) |
此页面为只读。要更改队列驱动程序,请更新
.env文件中的QUEUE_CONNECTION。
失败的任务
如果排队的任务失败(例如集成 API 返回错误),LeadHub 会以指数退避方式重试最多 3 次。3 次失败后,任务被标记为已失败。
失败的集成发送可在以下位置查看:
- 集成 → Webhook 日志 — 出站 Webhook 失败
- 集成 → 集成同步日志 — CRM/邮件营销同步失败
检查队列健康状况
队列工作进程正常运行的迹象:
- 自动化在事件发生后几分钟内触发
- 出站集成在线索到达后不久执行
- 邮件序列按时发送
- 导出完成并可下载
队列未运行的迹象:
- 自动化从不触发
- 集成同步一直处于"待处理"状态
- 邮件从未发送
修复: 检查您的 cron 任务是否已配置并正在运行。使用 cPanel → Cron 任务验证条目存在且路径正确。
常见问题
问:新线索同步到我的 CRM 需要多长时间? 队列默认每分钟运行一次。大多数线索在到达后 60–90 秒内完成同步。
问:我可以运行多个工作进程以加快处理速度吗?
可以,在 VPS/独立服务器上,您可以通过 Supervisor 运行多个 queue:work 进程。在共享主机上,单个 cron 任务是最大限制。
问:我需要 Redis 吗? 不需要。基于文件(数据库)的队列对于典型的线索量(每天最多数千条线索)是适合生产环境的。对于非常高的流量(每天 10,000 条以上线索),推荐使用 Redis。