Преимущество модели «тянуть» состоит в том, что каждый работник знает, сколько он загружен, и, следовательно, может управлять своей нагрузкой.
Кроме того, модель «pull» может быть более «разъединенной», поскольку переменная «load» хранится локально для работника, тогда как в модели «push» для передачи этого состояния необходим протокол связи (и служебные данные). .
Подумайте об успехе модели «тяги» в автомобильной промышленности: она пошла от традиционной модели «толчка», где запасы было трудно отследить, и требовала большого количества обратной связи к теперь успешной и вездесущей модели «тяги».
Когда дело доходит до масштабирования, у вас может быть промежуточный слой «планировщиков», который «опрашивает» задания из уровня выше. Базовые работники теперь могут взаимодействовать с промежуточным слоем разделенным способом.
Обратите внимание, что в любой модели требуется протокол координации связи: характер протокола координации отличается. В «модели проталкивания» существует дополнительный цикл управления, необходимый для сообщения / опроса «коэффициента нагрузки» каждого работника. При масштабировании системы требуется больше пропускной способности, больше состояния на стороне планировщика, больше задержек и т. Д.