I am working on a multi tenant service which will process long running jobs from multiple tenants.
I am considering service bus queue/queues to hold requests from tenants. Background job processor can process limited number of jobs at any given time. Background job processor has to give equal priority to jobs from all the tenants. Therefore, we dont want any single tenant to consume background processor resources, rather processor will process requests in round robin way. Simple Service Bus Queue is not the right solution, I was thinking about partition queues witch each partition holding request from each tenant. Does this sound like a correct solution OR do I need to create separate queues for each tenant? Does partition queue have the capability to return messages in round robin way OR can processor somehow check each partition one by one to see if there is a request to process?