Несколько лет назад решали подобную задачу про конвеер. Нужно поискать по форуму.