One of the queues (the one in the dedicated server) has a lot of tasks. If all resources are dedicated to this queue, then other tasks can take a long time to be processed, which is not desired.
That’s exactly the reason why tryton already supports several queue names.
One with the named queue filter and as much as possible worker threads
Another without name filter with less worker threads.
This will ensure that queue with a lot of tasks is processed fast while having some resources to others. You can run the first on a dedicated hardware and the other on shared hardware if you prefer.
Of course but only if other named workers does not have enought power to finish al pending tasks.
For me we should keep this behaviour to reduce the number of pending tasks and prevent having spare workers.
If you want a queue to not be delayed just create a worker for it. It’s the way to give priority for it.
When more queues are added you have two options:
If you want to priorize the queue just add a worker for it
If you do not want, just leave it on the default worker.
With you proposal (using except) adding new workers may lower the priority of tasks that should not be delayed to much, so it may produce hidden problems.
With current behaviour, we explicity define which tasks we want to priorize and always have a fallback for the rest.
Please take care that when worker is enabled you lose the control about when tasks are finished. They will be finished but you do not know when.
If you have a tasks which takes a lot of time, i think we should focus on improving it’s performance.
Having many trytond-worker services does not work as expected as described @albert.
We tried to get several services for dedicated queues and finally came back to a simple deployment with an unique worker service an many processes.