Tiêu dùng dành cho người tiêu dùng Async.operations.all đã bỏ qua khi kết nối được yêu cầu. Tên kết nối không xác định amqp


12

Vì tôi đã nâng cấp từ Magento 2.2.7 lên Magento 2.3.1 nên tôi nhận được thông báo này trong tệp system.log:

main.INFO: Tiêu dùng "async.operations.all" bị bỏ qua khi kết nối bắt buộc "amqp" không được định cấu hình. Tên kết nối không xác định amqp [] []

Tôi cũng gặp lỗi này khi cài đặt Magento 2.3.1 mới.

Tôi có thể cấu hình hoặc vô hiệu hóa nó ở đâu?


1
tôi cũng có vấn đề này bạn đã có được sắp xếp này ra?
Zoya

1
không chưa không có nhiều thông tin về vấn đề này
RaFr

1
Cảm ơn bạn. Xin vui lòng cho tôi biết nếu bạn tìm thấy một cái gì đó.
Zoya

1
vấn đề tương tự ở đây ... magento 2.3.1 với php7.2
styzzz

Tôi cũng có vấn đề này trong magento 2.3.3. bạn đã có được sắp xếp này ra?
Hansraj Systematix

Câu trả lời:


4

Chỉnh sửa /app/etc/env.phptập tin để cấu hình công việc định kỳ consumers_runner.

<?php
return [

// ...

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

]; // return closing

Để có danh sách tất cả người tiêu dùng hàng đợi của bạn có thể được cấu hình đang chạy:

php bin/magento queue:consumers:list

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


Làm thế nào đây là một giải pháp? bạn đang vô hiệu hóa hàng đợi không đồng bộ
Alex Bejan

1
Xin chào @AlexBejan, có hai câu trả lời, được bật theo mặc định nên vô hiệu hóa chỉ là một tùy chọn khi bạn không giả vờ sử dụng nó, nếu bạn muốn bạn có thể sử dụng cấu hình mà tôi khuyên dùng, nó giống như Magento DevDocs khuyến nghị.
Rafael Corrêa Gomes

Tôi không chắc chắn những gì bổ sung cho env.php làm ở đây. Nếu tôi muốn kích hoạt gửi tin nhắn không đồng bộ, tôi có thêm mã đó không hoặc tôi có chỉnh sửa cron_run thành đúng không?
Webninja

Còn lại cron_run sai @Webninja
Rafael Corrêa Gomes

1
Vâng, điều đó tôi nhận thấy. Vì vậy, nếu điều đó được để lại sai Magento không gửi email bằng cron? Hoặc hiệu ứng của cài đặt đó là gì?
Webninja

3

Câu trả lời từ @Rafael Corrêa Gomes (và bất kỳ vấn đề nào đề cập đến 'cron_run' => falsehoặc 'consumers' => ['async.operations.all']trong cấu hình đều khá phẫn nộ vì chúng khiến nhiều người sao chép-dán và phá hủy hàng đợi tin nhắn của họ khỏi chức năng.

cron_runđược đặt thành falsetrong cấu hình có nghĩa là thông điệp mà người tiêu dùng sẽ không được đưa ra bởi cron Magento. Điều đó có nghĩa là bạn sẽ phải chạy chúng bằng các phương tiện khác như Người giám sát hoặc SystemD. Và nếu không (và những câu trả lời đó hoàn toàn không đề cập đến điều đó), bạn sẽ có những thứ bị hỏng ngoài từ "hàng đợi tin nhắn", bao gồm, ở mức tối thiểu, xuất dữ liệu trong quản trị viên Magento.

Tài liệu đang được đề cập khi đăng cấu hình như vậy có tiêu đề không chính xác bên dưới phần này với các từ:

Cấu hình cụ thể

thay vì

Cấu hình mẫu

Nó là một mẫu, và không phải là một tiêu chuẩn. Nó không phải là một đề nghị để giải quyết bất cứ điều gì.

Nhưng, trong khi các tài liệu bị lỗi, nó không xin lỗi bỏ qua các dòng và không đọc thêm, sau đó đăng các giải pháp phá hoại trực tuyến.

Giải pháp thực sự là vô hiệu hóa API số lượng lớn mà hầu hết các cài đặt không sử dụng, về cơ bản là:

php bin/magento module:disable Magento_WebapiAsync

Hoặc, định cấu hình RabbitMQ nếu bạn muốn API số lượng lớn (rất khó xảy ra, tùy thuộc vào trường hợp sử dụng cụ thể).


0

Tôi đã gặp vấn đề này trên Magento 2.3.1 và sau khi tìm kiếm thông qua các tài liệu tôi đã tìm thấy liên kết này: https://devdocs.magento.com/guides/v2.3/config-guide/mq/manage-message-queues.html

Ở đây nó giải thích những gì nó làm và nó nói rằng bạn có thể chỉnh sửa tệp /app/etc/env.php để định cấu hình công việc cron Consumer_runner. Tôi đã quyết định thêm người tiêu dùng "async.operations.all" này vào đây.


0

Tôi đã thực hiện điều này ở cuối ứng dụng / etc / env.php

'cron_consumers_runner' => array(
        'cron_run' => false,
        'max_messages' => 20000,
        'consumers' => array(
            'consumer1',
            'consumer2',
        )
    )
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.