I can propose my local changes, this is merely a question to the other users, if I'm missing something:
Anything against creating the worker queue if it does not exist and also the exchange bindings when specified?
I see it happens when pushing the first message, but it makes sense to also do it before basic_consume.
PS: similar to declareDestination() and declareQueue()