Perl, mod_perl2 или CGI для службы очистки веб-страниц?

Я собираюсь разработать веб-службу с открытым исходным кодом, которая должна собирать («очищать веб-страницы») некоторые данные с нескольких - в настоящее время трех - веб-сайтов.

Веб-сайты не предоставляют никаких веб-сервисов или API, они просто публикуют веб-страницы.

Данные будут собираться «в реальном времени» по любому запросу клиента со всех веб-сайтов параллельно, а затем будут преобразованы в XML для возврата клиенту.

Операционная система сервера будет Linux.

Первоначально клиенты будут просто моим Android-приложением.

Число одновременных клиентов, возможно, будет около 100 и более, если проект будет успешным ... ;-).

В настоящее время я предпочитаю принять:

  • perl (для служебного языка)
  • mod_perl2 с ModPerl :: Registry (для встроенного в Apache быстрого интерпретатора Perl)
  • модуль perl CHI :: Driver :: FastMmap (для современного и быстрого обработчика кеша)
  • модуль perl Coro (для асинхронного цикла обработки событий для параллельного размещения множества запросов)

Поскольку я полагаю, что спецификации проекта могут быть полезными и интересными, и поскольку у меня возникает много проблем при совместном использовании Coro с mod_perl2, я спрашиваю:

Соответствуют ли мои предпочтения в усыновлении?

Вы видите несовместимости или потенциальные проблемы?

Есть ли у вас какие-либо предложения по улучшению (в таком порядке):

  • совместимость компонентов
  • аккуратность реализации
  • простота обслуживания
  • выступления

person MarcoS    schedule 02.08.2011    source источник


Ответы (2)


Вероятно, вы больше не хотите разрабатывать с помощью mod_perl какой-либо новый проект. Вы действительно хотите использовать что-то на основе Plack или, может быть, даже самого Plack. Если вы хотите использовать Coro, используйте AnyEvent, например Twiggy может иметь наибольший смысл (хотя вы можете захотеть поставить перед ним обратный прокси).

person Leon Timmermans    schedule 02.08.2011
comment
Я ищу документацию по настройке среды Plack для моего проекта, но я с трудом могу ее найти: вы можете дать мне какое-нибудь направление для поиска? - person MarcoS; 02.08.2011

Довольны ли вы тем, что используете apache?
Если да, забудьте о Coro и позвольте apache обрабатывать параллелизм; предварительно загрузите свои модули и конфигурацию и напишите суперэффективный apache RequestHandler. (Я поступаю именно так, когда доступен apache2 + modperl2.)
Если нет, начните изучать Plack, который не зависит от сервера.

Если вы выберете первый маршрут, я бы рекомендовал избегать традиционного CGI и вместо этого использовать CGI :: Application, который дает почти легкость и скорость CGI, но с гораздо более красивой / современной средой разработки и фреймворком (и совместим с Plack).

person niczero    schedule 03.11.2011