Kdyby/RabbitMq – no exchange in vhost
- jakubdvorak
- Bronze Partner | 4
Ahoj,
už si tady s tím docela dlouhou dobu lámu hlavu a pořád to nefunguje.
Používám Kdyby/RabbitMq, nijak neměním konfiguraci a používám prakticky dle tutorialu https://filip-prochazka.com/…kdyby-events
Na localhostu vše funguje naprosto výborně
Na ostrém serveru však není možné publikovat v produceru. V logu RabbitMq vidím:
=ERROR REPORT==== 3-Aug-2015::19:10:58 ===
Channel error on connection <0.343.0> (127.0.0.1:43588 -> 127.0.0.1:5672, vhost: 'postolio', user: 'kralik'), channel 1:
{amqp_error,not_found,"no exchange 'XXX' in vhost 'XXX'",
'basic.publish'}
Děkuji za rady
- Luděk Veselý
- Člen | 29
Z toho logu to vypadá že není vytvořená exchange – spouštěl jsi
předtím příkaz setup-fabric
php www/index.php rabbitmq:setup-fabric
? Pokud se přihlásíš do
webového rozhraní RabbitMQ (127.0.0.1:15672), vidíš exchanges a queues
správně vytvořené?
- jakubdvorak
- Bronze Partner | 4
Ahoj,
zdá se, že to pomohlo, teď to na serveru hlásí, že mu chybí knihovna bcmath, ale to doinstalujeme, to je jasné.
Jestli to dobře chápu, tak rabbitmq:setup-fabric se musí spouštět vždy po startu rabbitmq?
Je zvláštní, že na localhostu to dělat nemusím
- Luděk Veselý
- Člen | 29
To jestli zprava nebo fronta prezije restart RabbitMQ zalezi na jejich
nastaveni. Pisou o tom zde: https://www.rabbitmq.com/…two-php.html cast „Message
durability“. Podobne pak muzes Kdyby/RabbitMQ nastavit v config.neon
nastavenim deliveryMode: 2
. Kompletni konfigurace pak muze vypadat
napriklad nejak takhle:
rabbitmq:
connection:
host: localhost
port: 5672
user: 'guest'
password: 'guest'
producers:
test:
exchange: {name: 'test', type: topic}
queue: {name: 'test', deliveryMode: 2}
contentType: application/json
deliveryMode: 2
autoSetupFabric: on
consumers:
test:
exchange: {name: 'test', type: topic}
queue: {name: 'test', deliveryMode: 2}
callback: @App\Model\Test::myMethod
contentType: application/json
deliveryMode: 2
autoSetupFabric: on
Editoval Luděk Veselý (4. 8. 2015 9:56)