Добавить RabbitMQ к существующей установке Magento 2 EE

8

Есть ли способ добавить установку RabbitMQ / AMQP в существующую установку M2 EE? Все документы, кажется, кричат, что это должно быть сделано во время установки, но это кажется немного ограничивающим. Тем не менее, я не могу найти где-либо в админке, чтобы настроить хост, порт и т. Д.

robjingram
источник

Ответы:

7

Следующие шаги должны помочь:

  1. Добавьте следующий элемент в массив app/etc/env.php:

    'queue' => [ 'amqp' => [ 'host' => 'localhost', 'port' => '5672', 'user' => 'guest', 'password' => 'guest', 'virtualhost' => '/', 'ssl' => '' ] ]

  2. Убедитесь, что обмены, очереди и сопоставления обмена в очередь правильно настроены на стороне RabbitMQ. На данный момент это делается только один раз, когда установлен модуль AMQP. Тем не менее, можно инициировать процесс конфигурации RabbitMQ путем вызова \Magento\Amqp\Model\Topology::install. Плагин управления RabbitMQ - хороший инструмент для просмотра текущей конфигурации

На данный момент поддержка RabbitMQ реализована на самом базовом уровне и будет улучшена в рамках ближайших выпусков Magento. На данный момент лучший вариант - переустановить Magento, если это возможно.

Алекс Палиаруш
источник
Спасибо, я запустил установку и нашел настройки env.php, но не знал о шаге установки топологии. Может быть поэтому мой тест ничего не делает.
Робинграм
1
Просто отметив, что вышеупомянутое имело место. Я принудительно запустил установку AMQP, удалив ее, setup_moduleи мои очереди затем появились в менеджере RabbitMQ
robjingram
На самом деле вы можете добавить Magento \ Amqp \ Model \ Topology в свой собственный модуль UpgradeData и вызывать метод $ this-> topology-> install () оттуда, не подчеркивая таблицу setup_module.
0

Похоже, это будет встроено в 2.1.7+ (может быть, раньше?). Но если вам все еще нужно это, я проверил с этим, и это работает:

<?php

namespace MyNamespace\MyModule\Setup;

use Magento\Amqp\Model\Topology;
use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\ModuleContextInterface;
use Magento\Framework\Setup\SchemaSetupInterface;

class InstallSchema implements InstallSchemaInterface
{
    /**
     * @var Topology
     */
    private $topology;

    /**
     * InstallData constructor.
     */
    public function __construct(Topology $topology)
    {
        $this->topology = $topology;
    }


    /**
     * Installs DB schema for a module
     *
     * @param SchemaSetupInterface   $setup
     * @param ModuleContextInterface $context
     *
     * @return void
     */
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $setup->startSetup();
        $this->topology->install();
        $setup->endSetup();
    }
}
kirkmadera
источник
-1

Все setup:installкоманды могут быть изменены с помощью setup:store-config:set.

MauroNigrele
источник
В справке по этой команде перечислены некоторые параметры, которые я могу установить, например, --base-urlно как мне использовать ее, чтобы установить любой из параметров, перечисленных на devdocs.magento.com/guides/v2.0/install-gde/prereq/… ? Например, если я передаю, --amqp-hostя получаю сообщение об ошибке, что опция не существует.
Робинграм
Ну, я был почти уверен в этом. Я не могу проверить это напрямую, потому что у меня нет версии EE для тестирования, вы можете попробовать выполнить новую установку (в другом месте) с использованием этих параметров, а затем взглянуть на / app / etc / env .php ... я уверен, что в этом файле хранятся локальные конфигурации такого типа.
MauroNigrele