На болгарском Perl-воркшопе я хочу немного рассказать о том, как на практике обрабатывать задачи, используя Gearman.
Один из примеров — последовательная трансформация кода: сначала цикл, потом параллельный вызов нескольких воркеров, затем попытка использовать внутри воркеров общие данные.
Отдельная задача минимальна: для заданного запроса $text найти на гугле несколько картинок разного цвета. В первом случае, когда используется цикл, работает такой код:
for (qw (red orange yellow green blue violet)) {
$html_result .= MySearch::search("$_ $text");
}
Я хочу показать, как эти запросы распараллелить, передав их разным воркерам, работающим на разных машинах. А следующий шаг — научить независимые воркеры использовать общие данные, используя либо memcached, либо дополнительный неблокирующий воркер.
Комментировать