Does RabbitMQ have any concept of message priority? I have an issue were some more important messages are being slowed down due to less important messages sitting before it
If it implemented prioritization, it would not be an MQ.
MQs are email for data. And in all data transmission preserving order is vital. If you switch order, deletes happen before inserts, updates get out of sequence. Nothing works properly.
You may have a valid implementation, there are a few exceptions, but I have found that most priority queues are designed because people are thinking shallow thoughts about their system architecture and the interactions of the parts therein. Preserving the order of things is almost always the right thing to do, both for in-entity, and inter-entity interactions.
In order to say an event A can have a priority higher than event B, the two events must be de-coupled always. And when that happens one wonders why they exist in the same queue structure at all. Then again, if it is payload related, the calculation effort for that payload is also going to impact the performance of the system, so deciding sooner, ie before making the payload makes sense.