Agregue RabbitMQ a la instalación existente de Magento 2 EE

8

¿Hay alguna manera de agregar la configuración RabbitMQ / AMQP a una instalación M2 EE existente? Todos los documentos parecen gritar que debe hacerse en el momento de la instalación, pero eso parece un poco limitante. Sin embargo, no puedo encontrar ningún lugar en el administrador para configurar el host, el puerto, etc.

robjingram
fuente

Respuestas:

7

Los siguientes pasos deberían ayudar:

  1. Agregue el siguiente elemento a la matriz app/etc/env.php:

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

  2. Asegúrese de que los intercambios, las colas y las asignaciones de intercambio a cola estén configuradas correctamente en el lado de RabbitMQ. Por el momento, esto se hace solo una vez cuando el módulo AMQP está instalado. Sin embargo, es posible iniciar el proceso de configuración de RabbitMQ llamando \Magento\Amqp\Model\Topology::install. El complemento de administración RabbitMQ es una buena herramienta para ver la configuración actual

Por el momento, el soporte RabbitMQ se implementa en un nivel muy básico y se mejorará en el alcance de las versiones de Magento más cercanas. La mejor opción por ahora es reinstalar Magento si es posible.

Alex Paliarush
fuente
Gracias, ejecuté la configuración y encontré la configuración de env.php pero no sabía sobre el paso de instalación de la topología. Esa puede ser la razón por la cual mi prueba no está haciendo nada.
robjingram
1
Solo notando que lo anterior fue el caso. Obligé a la configuración de AMQP a ejecutarse nuevamente al eliminarla setup_moduley mis colas aparecieron en el administrador de RabbitMQ
robjingram
En realidad, puede inyectar Magento \ Amqp \ Model \ Topology en su propio módulo UpgradeData e invocar el método $ this-> topology-> install () desde allí sin estresar la tabla setup_module.
0

Esto parece estar incorporado ahora en 2.1.7+ (¿quizás antes?). Pero si todavía necesitas esto, probé con esto y funciona:

<?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
fuente
-1

Todos los setup:installcomandos se pueden cambiar usando setup:store-config:set.

MauroNigrele
fuente
La ayuda para ese comando enumera algunos parámetros que puedo establecer, --base-urlpero ¿cómo debo usarlo para configurar cualquiera de las opciones enumeradas en devdocs.magento.com/guides/v2.0/install-gde/prereq/… ? Por ejemplo, si paso --amqp-host, recibo un error de que la opción no existe.
robjingram
Bueno, estaba casi seguro de eso. No puedo probarlo directamente porque no tengo una versión EE para probar, puedes intentar hacer una instalación nueva (en otro lugar) usando estas opciones de parámetros y luego echar un vistazo a / app / etc / env .php ... estoy bastante seguro de que este tipo de configuraciones locales se almacenan en este archivo.
MauroNigrele