我有一個關於third RabbitMQ tutorial的問題。我試圖實現類似的東西,除非不能保證消費者在生產者向交易所發送消息時運行。訪問隊列綁定之前發送的交換消息
所以,我有我的製片人,其消息發佈給扇出交換:
$channel->exchange_declare('my_exchange', 'fanout', false, false, false);
$channel->basic_publish('my_message', 'my_exchange');
在我的出版商,我宣佈隊列,然後我綁定到Exchange:
list($queueName,,) = $channel->queue_declare("", false, false, true, false);
$channel->queue_bind($queueName, 'my_exchange');
而且這是我的問題是根源。該教程說:
如果沒有隊列綁定到交換所,消息將丟失, 但這對我們來說沒問題;如果沒有消費者正在收聽,我們可以放心地丟棄消息 。
有沒有辦法以某種方式保留這些消息,所以當消費者啓動時,它會訪問以前發送的消息?我想出瞭如何做到這一點的唯一方法是在我的製片人和我的發行人中聲明同一個隊列,但這種方式有損於爲不同消費者進行交換和單獨隊列的目的。