跳到主要内容

队列与工作进程

设置 → 高级 → 队列与工作进程显示您的 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 共享主机

  1. 登录 cPanel → Cron 任务
  2. 将计划设置为每分钟* * * * *)。
  3. 将命令设置为:
    php /home/yourusername/public_html/cron.php >> /dev/null 2>&1
    将路径替换为您的 LeadHub 安装的绝对路径。

完整的 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
驱动程序使用中的队列驱动程序(databaseredissync
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。