Ajouter RabbitMQ à l'installation existante de Magento 2 EE

8

Existe-t-il un moyen d'ajouter la configuration RabbitMQ / AMQP à une installation M2 EE existante? Tous les documents semblent crier que cela doit être fait au moment de l'installation, mais cela semble un peu limitant. Cependant, je ne trouve nulle part dans l'administrateur pour configurer l'hôte, le port, etc.

robjingram
la source

Réponses:

7

Les étapes suivantes devraient vous aider:

  1. Ajoutez l'élément suivant au tableau dans app/etc/env.php:

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

  2. Assurez-vous que les échanges, les files d'attente et les mappages d'échange vers la file d'attente sont correctement configurés du côté RabbitMQ. Pour le moment, cela n'est effectué qu'une seule fois lorsque le module AMQP est installé. Cependant, il est possible de lancer le processus de configuration de RabbitMQ en appelant \Magento\Amqp\Model\Topology::install. Le plugin de gestion RabbitMQ est un bon outil pour visualiser la configuration actuelle

Pour le moment, le support RabbitMQ est implémenté à un niveau très basique et va être amélioré dans la portée des versions de Magento les plus proches. La meilleure option pour l'instant est de réinstaller Magento si possible.

Alex Paliarush
la source
Merci, j'ai exécuté l'installation et trouvé les paramètres env.php mais je ne connaissais pas l'étape d'installation de la topologie. C'est peut-être pourquoi mon test ne fait rien.
robjingram
1
Notant simplement que ce qui précède était le cas. J'ai forcé la configuration AMQP à s'exécuter à nouveau en la supprimant de setup_moduleet mes files d'attente sont ensuite
apparues
Vous pouvez réellement injecter Magento \ Amqp \ Model \ Topology dans votre propre module UpgradeData et invoquer la méthode $ this-> topology-> install () à partir de là sans mettre l'accent sur la table setup_module.
0

Cela semble être intégré maintenant dans 2.1.7+ (peut-être plus tôt?). Mais si vous en avez encore besoin, j'ai testé avec ça et ça marche:

<?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
la source
-1

Toutes les setup:installcommandes peuvent être modifiées à l'aide de setup:store-config:set.

MauroNigrele
la source
L'aide de cette commande répertorie certains paramètres que je peux définir, --base-urlmais comment l'utiliser pour définir l'une des options répertoriées sur devdocs.magento.com/guides/v2.0/install-gde/prereq/… ? Par exemple, si je réussis, --amqp-hostj'obtiens une erreur indiquant que l'option n'existe pas.
robjingram
Eh bien, j'en étais presque sûr. Je ne peux pas le tester directement car je n'ai pas de version EE à tester, vous pouvez essayer de faire une nouvelle installation (à un autre endroit) en utilisant ces options de paramètres, puis jetez un œil à / app / etc / env .php ... je suis sûr que ce type de configurations locales est stocké dans ce fichier.
MauroNigrele