human-element / module-advanced-message-queue-options
该包最新版本(0.0.1)没有可用的许可信息。
允许高级配置消息队列系统的模块
0.0.1
2019-10-11 20:05 UTC
Requires
- php: >=7.0.0
This package is auto-updated.
Last update: 2024-09-10 20:54:28 UTC
README
此模块添加了在var目录下设置消息队列消费者PID目录的功能。
这样您就可以共享该目录,并且在部署之间不会丢失PID的跟踪。
它还提供了一个CLI命令来创建更新的毒丸版本。
这允许您在部署结束时选择让Magento重新启动消费者。
还建议安装补丁以获取consumers_wait_for_messages功能,这样即使在部署之间没有要处理的消息,毒丸也不会杀死进程。您将知道会启动一个新的进程,该进程具有您的新部署目录。
安装
composer require human-element/module-advanced-message-queue-options
php bin/magento module:enable HumanElement_AdvancedMessageQueueOptions
php bin/magento setup:upgrade
将消费者PID更改到目录中
您可以使用以下env.php中的选项将消息消费者PID更改到var下的目录
return array (
'cron_consumers_runner' => array(
'pid_dir' => 'mqpid'
)
);
这将把消息队列PID放入var/mqpid,而不是var的根目录
这将把新的毒丸版本放入数据库,导致所有消费者在下一个消息时重启进程
php bin/magento he:queue:consumers:poison
推荐补丁
composer补丁json配置
{
"patches": {
"magento/framework-message-queue": {
"Adds message queue option consumers_wait_for_messages from https://github.com/magento/magento2/commit/4e960c31bf345f59a4eccc16832a3a737d4ce8b8 ": "patches/composer/message-consumer-wait-for-messages-option.patch"
}
}
}
补丁使用
这将在env.php中添加consumers_wait_for_messages选项
return array (
'queue' => array(
'consumers_wait_for_messages' => false
)
);
此选项修复了运行时间过长的消费者引起的问题,但它也导致另一个问题,即使用不必要的内存来创建每小时自我杀死进程:[链接](https://github.com/magento/architecture/pull/232/files)。修复了一个问题但引起了另一个,至少目前,上述建议是检测是否有消息,并且只有当它们存在时才创建消费者选项。
相关问题
magento/community-features#181
https://github.com/magento/magento2/commit/4e960c31bf345f59a4eccc16832a3a737d4ce8b8