Есть простенькая очередь задач, которая позволяет пускать задания по расписанию, мапредьюсить толстые задачи на чанки и т.п. Этого хватает, чтобы запустить воркеры на нужном количестве ядер или серверов. То есть, нагрузить железки на 100%.
https://github.com/nodeca/nodeca.core/tree/master/lib/queue
Теперь хочется сделать хитрее - использовать все ресурсы железок, но только из свободных, чтобы не мешать другим процессам. Как это сделать «правильно»?
PS. Речь именно о CPU, с IO проблем нет.