Исходный код проекта: GearmanDaemon
Gearman это универсальный фреймворк разработки приложений для раздачи работ множеству машин или процессов. Это позволяет приложениям выполнять задачи параллельно, распределяя нагрузку и использовать функции различных языков. Фреймворк может использоваться во множестве приложений, от высоконадежных веб-сайтов до транспорта событий репликации базы данных.
Т.е. у нас есть задача не на 15 секунд, допустим сделать несколько ресайзнутых копии загруженных пользователем фотографии в наилучшем качестве. Если это делать синхронно, то это может занять до нескольких минут. Для устранения проблемы ожидания создано это расширение.
Принцип работы:
- Клиент: Получаем данные от клиента (набор фотографии или другое.)
- Клиент: Разбиваем данные на группы по какому то признаку
- Клиент: Ставим задачи серверам: каждому серверу или разных потокам сервера своя задача
- Сервер: Демон сервера, на любом языке, получает новое задание, стартует поток и выполняет задание
Более подробное описание реализации под катом.