The different between multilevel and priority is the queuing strategy and the runner is almost the same, the only difference is that multilevel runner adjusts level 0 chance dynamically. So this PR extract the common part of the runner into a separate struct.
The different between multilevel and priority is the queuing strategy and the runner is almost the same, the only difference is that multilevel runner adjusts level 0 chance dynamically. So this PR extract the common part of the runner into a separate struct.