Все привет.
При использовании Gearman сервера возника следующая проблема.
Одновременно, через асинхронные сокеты, посылается большое количество тасков. И в таком случае Gearman сервер ни один такс не принимает, и ни чего не возвращает (on_failed, on_complite).
Вообщем скрипт на перле. Вся архитектура постороена на event-drive. Используется библиотека livev. А именно модуль EV.
Каждый форк создает 256 асинхронных сокетов. И так получается что все эти асинхронные "потоки", практически в самом начале, посылают таски на гирман сервер одновременно. И если запустить больше 5 форков то происходит большой облом. Wireshark показывает кучу обломанных соединений. И воркеры ни одного таска не получают, в статусе гирман сервера показываются только сободные воркеры, и не одного занятого. Те сервер просто не принимает эти таски, рвет коннекты, и не возвращает ничего что можно было бы обработать в скрипте.
Модуль используемый для работы с гирманом AnyEvent::Gearman.
Использование синхронной библиотеки для работы с гирманом не желательно, тк в после того как первоя волна тасков пройдет, софт будет уже переодически посылать новые таски. И тут эти блокировки будут сильно тормозить работу, обрывать другие, ранее созданные коннекты и тд.