队列
您可以通过激活邮件和页面打开的队列机制来提高可扩展性。如果您在人们打开页面或邮件时遇到突发的大量流量,请使用此功能。
Note
使用 RabbitMQ 或 Beanstalkd 的 Mautic 3.x 用户需要直接在其本地配置文件中配置设置。如果您使用的是旧版 Mautic 2.x 系列,以下步骤保持不变。
激活
您可以通过进入配置来激活和配置队列机制:
点击右上角的齿轮图标打开管理员菜单。
选择 配置 菜单项。
选择 队列设置 选项卡。
将 队列协议 切换为 RabbitMQ 或 Beanstalkd。
保存配置。
使用 RabbitMQ
RabbitMQ 是 Mautic 支持的可用队列协议之一。要使用它,您必须有一台正在运行的 RabbitMQ 服务器。在 RabbitMQ 上,您可以获取有关如何安装 RabbitMQ 的说明。出于测试目的,您可以使用 cloudamqp,它提供 RabbitMQ 即服务。
设置好 RabbitMQ 服务器后,您可以通过在安装目录的配置文件中设置相应的 mautic.rabbitmq_* 参数来配置 Mautic 使用它。
参数 |
默认值 |
描述 |
|---|---|---|
|
|
RabbitMQ 服务器的 |
|
|
RabbitMQ 服务器监听的端口 |
|
|
用于此 RabbitMQ 服务器的虚拟主机 |
|
|
RabbitMQ 服务器的用户名 |
|
|
RabbitMQ 服务器的密码 |
|
|
队列消费者在空闲时超时的秒数 |
|
|
消费者因空闲超时退出时返回的退出代码 |
示例:
'queue_protocol' => 'rabbitmq',
'rabbitmq_host' => 'b-180b97c2-6b05-4b10-80ed-09182eac3a02.mq.us-west-1.amazonaws.com',
'rabbitmq_port' => '5671',
'rabbitmq_vhost' => '/',
'rabbitmq_user' => 'some_user',
'rabbitmq_password' => 'some_password',
'rabbitmq_idle_timeout' => 0,
'rabbitmq_idle_timeout_exit_code' => 0,
使用 Beanstalkd
Beanstalkd 是 Mautic 支持的另一个可用队列协议。要使用它,您必须有一台正在运行的 Beanstalkd 服务器。在 Beanstalkd website 上,您可以获取有关如何安装 Beanstalkd 的说明。
设置好 Beanstalkd 服务器后,您可以通过在安装目录的配置文件中设置相应的 mautic.beanstalkd_* 参数来配置 Mautic 使用它。
参数 |
默认值 |
描述 |
|---|---|---|
|
|
Beanstalkd 服务器的 |
|
|
Beanstalkd 服务器监听的端口 |
|
|
Beanstalkd 任务的默认运行时间(TTR) |
处理
激活队列机制后,所有页面访问和邮件打开都会被加入队列,等待后续处理。您需要定期运行一些控制台命令来处理它们。
要处理页面的访问记录,请使用以下命令:
php /path/to/mautic/bin/console mautic:queue:process --env=prod -i page_hit
要处理邮件的访问记录,请使用以下命令:
php /path/to/mautic/bin/console mautic:queue:process --env=prod -i email_hit
这些命令运行后会持续执行,直到您使用键盘组合键 Control + C 停止程序。如果您只想运行它们处理例如 50 条页面访问或邮件访问记录,可以像这样运行命令:
php /path/to/mautic/bin/console mautic:queue:process --env=prod -i page_hit -m 50
或
php /path/to/mautic/bin/console mautic:queue:process --env=prod -i email_hit -m 50
推送任务的定时任务
您需要运行以下定时任务来持续推送任务:
php /path/to/mautic/bin/console mautic:email:send
有关更多信息,请参阅 定时任务 文档。