Limitting jobs count depending on server cpu / memory status

I can distribute my jobs between servers using queue names. Also, I can set workerCount. However, I need to dynamically decide to execute a job depending on server cpu / memory status. Also, I need to pick the best server in runtime depending on again cpu / memory metrics.
Can I create such a business logic?

Thanks