Consumer "async.operations.all" übersprungen als erforderliche Verbindung "amqp" ist nicht konfiguriert. Unbekannter Verbindungsname amqp

12

Seit dem Upgrade von Magento 2.2.7 auf Magento 2.3.1 wird folgende Meldung in der Datei system.log angezeigt:

main.INFO: Consumer "async.operations.all" wurde als erforderliche Verbindung übersprungen. "amqp" ist nicht konfiguriert. Unbekannter Verbindungsname amqp [] []

Ich erhalte diesen Fehler auch bei einer Neuinstallation von Magento 2.3.1.

Wo kann ich es konfigurieren oder deaktivieren?

RaFr
quelle
1
Ich habe auch dieses Problem. Hast du das geklärt?
Zoya
1
Nein noch nicht. Nicht viele Informationen zu diesem Problem
RaFr
1
Vielen Dank. Bitte lassen Sie mich wissen, wenn Sie etwas finden.
Zoya
1
gleiche Ausgabe hier ... Magento 2.3.1 mit php7.2
styzzz
Ich habe auch dieses Problem in Magento 2.3.3. Hast du das geklärt?
Hansraj Systematix

Antworten:

4

Bearbeiten Sie die /app/etc/env.phpDatei, um den Cron-Job zu konfigurieren consumers_runner.

<?php
return [

// ...

    'cron_consumers_runner' => [
        'cron_run' => true,
        'max_messages' => 20000,
        'consumers' => [
            'async.operations.all',
        ]
    ],

]; // return closing

So rufen Sie die Liste aller Warteschlangenkonsumenten ab, die ausgeführt werden können:

php bin/magento queue:consumers:list

Referenz: https://devdocs.magento.com/guides/v2.3/config-guide/mq/manage-message-queues.html#configuration

Rafael Corrêa Gomes
quelle
Wie ist das eine Lösung? Sie deaktivieren die asynchronen Warteschlangen
Alex Bejan
1
Hallo @AlexBejan, es gibt zwei Antworten. Es ist standardmäßig aktiviert. Das Deaktivieren ist also nur eine Option, wenn Sie nicht vorgeben, es zu verwenden. Wenn Sie möchten, können Sie die von mir empfohlene Konfiguration verwenden. Dies entspricht den Empfehlungen von Magento DevDocs.
Rafael Corrêa Gomes
Ich bin mir nicht sicher, was der Zusatz zur env.php hier bewirkt. Wenn ich das asynchrone Senden von Nachrichten aktivieren möchte, füge ich diesen Code hinzu oder bearbeite ich den cron_run so, dass er wahr ist?
Webninja
Verließ den cron_run false @Webninja
Rafael Corrêa Gomes
1
Ja, das ist mir aufgefallen. Wenn das also falsch bleibt, sendet Magento keine E-Mails per Cron? Oder wie wirkt sich diese Einstellung aus?
Webninja
3

Die Antwort von @Rafael Corrêa Gomes (und alle Antworten, die entweder 'cron_run' => falseoder 'consumers' => ['async.operations.all']in der Konfiguration erwähnt werden, sind ziemlich empörend, weil sie viele Leute dazu bringen, ihre Nachrichtenwarteschlangen zu kopieren, einzufügen und zu zerstören.

cron_runauf falsein der Konfiguration bedeutet , dass die Nachricht die Verbraucher nicht durch die Magento cron gestartet werden werden. Dies bedeutet, dass Sie sie mit anderen Mitteln wie SupervisorD oder SystemD ausführen müssen. Und wenn nicht (und diese Antworten erwähnen das überhaupt nicht), haben Sie Probleme, die über die Worte "Nachrichtenwarteschlangen" hinausgehen, einschließlich mindestens des Datenexports in Magento admin.

Die Dokumentation, auf die beim Posten einer solchen Konfiguration verwiesen wird, enthält eine falsche Überschrift unter diesem Abschnitt mit folgenden Worten:

Spezifische Konfiguration

anstatt

Beispielkonfiguration

Es ist ein Beispiel und kein Standard. Es ist auch keine Empfehlung, etwas zu lösen.

Aber während die Dokumente schuld sind, entschuldigt es nicht, die Zeilen zu überspringen und nicht weiter zu lesen und dann destruktive Lösungen online zu stellen.

Die eigentliche Lösung besteht entweder darin, die Bulk-API zu deaktivieren, die die meisten Installationen im Wesentlichen nicht verwenden:

php bin/magento module:disable Magento_WebapiAsync

Oder konfigurieren Sie RabbitMQ, wenn Sie die Bulk-API verwenden möchten (höchst unwahrscheinlich, abhängig vom jeweiligen Anwendungsfall).

Danila Vershinin
quelle
0

Ich bin auf Magento 2.3.1 darauf gestoßen und habe nach einigem Durchsuchen der Dokumente diesen Link gefunden: https://devdocs.magento.com/guides/v2.3/config-guide/mq/manage-message-queues.html

Hier wird erklärt, was es tut, und es heißt, dass Sie die Datei /app/etc/env.php bearbeiten können, um den Cron-Job consumer_runner zu konfigurieren. Ich habe beschlossen, diesen "async.operations.all" -Konsumenten hier hinzuzufügen.

Isolde
quelle
0

Ich ging damit am Ende von app / etc / env.php

'cron_consumers_runner' => array(
        'cron_run' => false,
        'max_messages' => 20000,
        'consumers' => array(
            'consumer1',
            'consumer2',
        )
    )
Ron Sayers
quelle