第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

RabbitMQ:如何將失敗的消息從一個(gè)隊(duì)列移動到另一個(gè)隊(duì)列?

RabbitMQ:如何將失敗的消息從一個(gè)隊(duì)列移動到另一個(gè)隊(duì)列?

PHP
森欄 2023-10-01 15:58:48
我有兩個(gè)隊(duì)列:當(dāng)我運(yùn)行時(shí)同樣可見rabbitmqadmin list queues vhost name node messages message_stats.publish_details.rate -u admin -p admin:我得到:+-------+-------------------------+-------------------------+----------+------------------------------------+| vhost |          name           |          node           | messages | message_stats.publish_details.rate |+-------+-------------------------+-------------------------+----------+------------------------------------+| /     | high_priority           | rabbit@server-rabbitmq  | 5        | 0.0                                || /     | high_priority_secondary | rabbit@server-rabbitmq  | 0        | 0.0                                |+-------+-------------------------+-------------------------+----------+------------------------------------+我的交流(rabbitmqadmin -V / list exchanges -u admin -p admin)如下:+-------------------------+---------+|          name           |  type   |+-------------------------+---------+|                         | direct  || amq.direct              | direct  || amq.fanout              | fanout  || amq.headers             | headers || amq.match               | headers || amq.rabbitmq.trace      | topic   || amq.topic               | topic   || high_priority           | direct  || high_priority_secondary | direct  || low_priority            | direct  |+-------------------------+---------+隊(duì)列和整個(gè)相關(guān)邏輯是在 PHP / Symfony 中實(shí)現(xiàn)的,但是我想通過在終端中使用rabbitmqadmin或命令來使用本機(jī)邏輯(如果可能) 。rabbitmqctl如果消息失敗high_priority,我希望 RabbitMQ 自動將其移至隊(duì)列,high_priority_secondary而無需任何 PHP 參與。這可能嗎?我已經(jīng)開始閱讀有關(guān)死信交換的內(nèi)容,但我不知道如何解決這個(gè)問題。我已經(jīng)為輔助隊(duì)列創(chuàng)建了一個(gè)消費(fèi)者,因此一旦消息移動到那里,它就會被處理。僅在 CLI 中可以實(shí)現(xiàn)此目的嗎?僅供參考:SO 上有一些建議的帖子已經(jīng)涵蓋了這個(gè)問題,但沒有一個(gè)解決方案是純粹的 CLI 解決方案。
查看完整描述

2 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

好吧,雖然我不必修改任何 PHP 代碼,但我確實(shí)必須更改yaml框架級別的配置,因?yàn)槲蚁M业慕鉀Q方案得以保留并成為代碼庫的一部分。


在你的app/config/services/rabbitmq.yaml:


定義生產(chǎn)者:


high_priority:

    connection: default

    class: Foo\Infrastructure\RabbitMQ\SuppressedProducer

    exchange_options:

        name: 'high_priority'

        type: direct

high_priority_secondary:

    connection: default

    class: Foo\Infrastructure\RabbitMQ\SuppressedProducer

    exchange_options:

        name: 'high_priority_secondary'

        type: direct

message_hospital:

    connection: default

    class: Foo\Infrastructure\RabbitMQ\SuppressedProducer

    exchange_options:

        name: 'message_hospital'

        type: direct

定義消費(fèi)者:


high_priority:

    connection: default

    exchange_options:

        name: 'high_priority'

        type: direct

    queue_options:

        name: 'high_priority'

        arguments:

            x-dead-letter-exchange: ['S', 'high_priority_secondary']

    qos_options:

        prefetch_size: 0

        prefetch_count: 1

        global: false

    callback: foo.task_bus.consumer

high_priority_secondary:

    connection: default

    exchange_options:

        name: 'high_priority_secondary'

        type: direct

    queue_options:

        name: 'high_priority_secondary'

        arguments:

            x-dead-letter-exchange: ['S', 'message_hospital']

    qos_options:

        prefetch_size: 0

        prefetch_count: 1

        global: false

    callback: foo.task_bus.consumer

message_hospital:

    connection: default

    exchange_options:

        name: 'message_hospital'

        type: direct

    queue_options:

        name: 'message_hospital'

    qos_options:

        prefetch_size: 0

        prefetch_count: 1

        global: false

    callback: foo.task_bus.consumer

現(xiàn)在隊(duì)列看起來像:

https://img1.sycdn.imooc.com//651926ff00016c3623740730.jpg

由于 DLX 屬性,消息一旦在之前的消息中失敗,就會立即進(jìn)入醫(yī)院隊(duì)列。



查看完整回答
反對 回復(fù) 2023-10-01
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

high_priority_secondary隊(duì)列應(yīng)該綁定到high_priority_secondary交換器。 high_priority隊(duì)列應(yīng)該綁定到high_priority交換并且應(yīng)該用 聲明x-dead-letter-exchange = high_priority_secondary

因此隊(duì)列應(yīng)該用死信交換來聲明。

要測試這一點(diǎn),只需在從隊(duì)列中使用消息時(shí)通過重新排隊(duì)拒絕該消息即可high_priority。

https://img1.sycdn.imooc.com//6519271100017f8c11130379.jpg

查看完整回答
反對 回復(fù) 2023-10-01
  • 2 回答
  • 0 關(guān)注
  • 209 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號