-
Task
-
Resolution: Done
-
Undefined
-
None
-
None
-
None
The current memory job queue processes jobs from a single queue in order. This will work if all jobs have relatively same processing time, however, it looks like some jobs are very fast (just update something) and others take about an hour (build ISO/TAR).
This means the long-running jobs might saturate all the worker goroutines and starve the queue leaving the short-running jobs waiting. The easy solution is to introduce job weight - a float with 0.0 meaning "light" job and 1.0 "heavy job". There can be two or more queues with separate worker pools for each category for better utilization of resources.