Fügen Sie RabbitMQ zur vorhandenen Magento 2 EE-Installation hinzu

8

Gibt es eine Möglichkeit, einer vorhandenen M2 EE-Installation ein RabbitMQ / AMQP-Setup hinzuzufügen? Alle Dokumente scheinen zu schreien, dass dies zur Installationszeit erfolgen muss, aber das scheint ein bisschen einschränkend zu sein. Ich kann jedoch nirgendwo im Administrator einen Ort finden, an dem Host, Port usw. konfiguriert werden können.

robjingram
quelle

Antworten:

7

Die folgenden Schritte sollten helfen:

  1. Fügen Sie dem Array das folgende Element hinzu app/etc/env.php:

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

  2. Stellen Sie sicher, dass Austausche, Warteschlangen und Zuordnungen von Austausch zu Warteschlange auf der RabbitMQ-Seite ordnungsgemäß konfiguriert sind. Im Moment wird dies nur einmal durchgeführt, wenn das AMQP-Modul installiert ist. Es ist jedoch möglich, den RabbitMQ-Konfigurationsprozess durch Aufrufen zu initiieren \Magento\Amqp\Model\Topology::install. Das RabbitMQ-Verwaltungs-Plugin ist ein gutes Tool zum Anzeigen der aktuellen Konfiguration

Derzeit wird die RabbitMQ-Unterstützung auf einer sehr einfachen Ebene implementiert und im Rahmen der nächsten Magento-Versionen verbessert. Die beste Option für den Moment ist, Magento nach Möglichkeit neu zu installieren.

Alex Paliarush
quelle
Vielen Dank, ich habe das Setup ausgeführt und die Einstellungen für env.php gefunden, wusste aber nichts über den Installationsschritt für die Topologie. Vielleicht macht mein Test deshalb nichts.
Robjingram
1
Ich stelle nur fest, dass das oben Genannte der Fall war. Ich habe das AMQP-Setup gezwungen, erneut ausgeführt zu werden, indem setup_moduleich es aus entfernt habe, und meine Warteschlangen wurden dann im RabbitMQ-Manager
angezeigt
Sie können Magento \ Amqp \ Model \ Topology tatsächlich in Ihr eigenes Modul UpgradeData einfügen und von dort aus die Methode $ this-> topology-> install () aufrufen, ohne die Tabelle setup_module zu belasten.
0

Dies scheint jetzt in 2.1.7+ eingebaut zu sein (vielleicht früher?). Aber wenn Sie das noch brauchen, habe ich damit getestet und es funktioniert:

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

Alle setup:installBefehle können mit geändert werden setup:store-config:set.

MauroNigrele
quelle
In der Hilfe zu diesem Befehl werden einige Parameter aufgelistet, die ich festlegen kann, z. B. --base-urlwie soll ich damit die unter devdocs.magento.com/guides/v2.0/install-gde/prereq/… aufgeführten Optionen festlegen ? Wenn ich zum Beispiel bestanden --amqp-hosthabe, erhalte ich die Fehlermeldung, dass die Option nicht vorhanden ist.
Robjingram
Da war ich mir fast sicher. Ich kann es nicht direkt testen, da ich keine EE-Version zum Testen habe. Sie können versuchen, mithilfe dieser Parameteroptionen eine Neuinstallation (an einem anderen Ort) durchzuführen, und dann einen Blick auf / app / etc / env werfen .php ... Ich bin mir ziemlich sicher, dass solche lokalen Konfigurationen in dieser Datei gespeichert sind.
MauroNigrele