Replies: 1 comment
-
There is something weird I've noticed. If you have a processor queue and a queue with the same name
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hey,
First of all, I'd like to thank you for that great work on this library. It seems very promising. I'm currently testing it because I'm fed up of Symfony Messenger. I've been using messaging libraries for a while now:
I really want to use your lib for my next professional projects.
To be honest, it's pretty hard to understand how it works out of the box by reading the documentation :/
I'll list some feedbacks about my misunderstanding! :)
1/ For Symfony, what is the difference between an
enqueue.processor
andenqueue.transport.processor
? In which case should I use one instead of the other?enqueue.processor
and runenqueue:transport:consume
then, I'll get an error because it's incompatibleenqueue.transport.processor
and runenqueue:consume
then, I'll get an error because it's incompatibleMy thought is that
enqueue:transport:consume
enables to handle a message from a given queue with a given processor even if the processor is not configured on that queue.enqueue:consume
will select the appropriate queue binded processor to handle that message2/ I want to dispatch commands or events using async. For commands, while reading the documentation, I thought the only way to do it, was to use
enqueue/async-command
library. But it is not. I'm able to async send commands and consume those later usingenqueue:consume
with an SQS client.I think, you should make a clear distinction between Producer sending commands/events and cases when we need to use
async-command
3/ Configuration
I'm using the symfony bridge. I want to declare a queue named "place-order" for my transport named "sqs"
When I run
enqueue:setup-broker
then it perfectly creates a queue named "dev-place-order" into SQS.Now, let's say I want to manually register a processor on that queue by tagging it. If I rerun
enqueue:setup-broker
, then it will create another queue nameddev-default
:Configuration:
Command output:
As your you can see, It creates a queue named
dev-default
only because I've tagged my processor. I don't want that. So following the documentation, I have to specify a queue name tag, e.g:That will work. But I've debugged the source code and it will actually make a HTTP request to AWS SQS for creating this queue which already exist:
So... I must define the
client
key in a transport, otherwise an exception will be raised. If I don't want any default queue to be created, I have to definerouter_queue
inclient
with my queue name.If I wanna manually register a processor and if I don't want a default queue to be created, I have to define the
queue
tag.How can I avoid that double queue creation?
4/ Multiple queues on a same transport
Let's say I want only one transport (SQS) with N queues (queue1, queue2, queue3). Should I do that?
If so, I found it pretty confusing to get 3 different clients for the same transport to achieve this.
I'm more expecting something like:
Thanks!
Beta Was this translation helpful? Give feedback.
All reactions