Как мне реализовать пакетную обработку для коммерческого сайта? - PullRequest
0 голосов
/ 19 января 2010

Я действительно застрял на этом.

Пользователи вводят некоторые данные на моем веб-сайте, которые мне необходимо обработать позже в серии пакетных заданий.Я действительно всегда знаю, как работать с онлайн-транзакциями.Я не знаю, каковы тенденции на ведущих технологиях для обработки данных в пакетном режиме.Должен ли я использовать задания cron, можно ли использовать Perl для тех пакетных скриптов, которые мне нужны?Есть ли основной подход к тому, что мне нужно?

Лучше всего, Демиан

Ответы [ 4 ]

1 голос
/ 19 января 2010

У вас может быть набор демонов, которые опрашивают вашу очередь на наличие новых задач.Или вы можете использовать продукт очереди сообщений или что-то вроде Gearman.Или вы можете запускать задания cron, которые время от времени проверяют новую работу.

Вы можете сохранить очередь задач в своей базе данных;это может быть неэффективно, если у вас большое количество задач и процессов, поэтому вы можете исследовать множество продуктов очередей сообщений.

Вы можете запустить одну или несколько задач агента (демонов и т. д.) на сервер илиодин.Вы можете запускать их синхронно или асинхронно для сбора данных с того сервера, который им необходим.

Вы можете записать результаты в другую базу данных, отправить их по электронной почте или в файле.Вы можете написать все это на любом языке или на нескольких языках.

Варианты практически безграничны:)

1 голос
/ 19 января 2010

Задания Cron предназначены для многократного запуска какого-либо задания или процесса с заданным интервалом времени. Вы можете использовать Perl или любой другой язык на стороне сервера. Задание cron запускается так, как вы говорите.

Вот пример того, кто запускает crontab для сценария perl: http://www.linuxquestions.org/questions/linux-software-2/adding-a-perl-script-to-cron.daily-cron.d-to-setup-a-cron-job-592762/

Вы можете поискать документацию в Google самостоятельно, но пост, на который я ссылался, по звучанию был похож на вашу ситуацию.

Конечно, я предполагаю, что ваш сервер позволяет запускать задания cron и на нем установлен perl.

1 голос
/ 19 января 2010
  1. Какой язык вы выбираете, не имеет значения (выберите тот, который вам наиболее знаком), но Perl отлично справляется с этим (используя его для этой цели, среди прочих).

  2. Вы можете определенно использовать демон cron в Unix / Linux для планирования заданий, если это то, что у вас есть. Существуют другие планировщики для разных ОС, как бесплатные / включенные, так и коммерческие (например, Autosys), в зависимости от того, что / как вам нужно пакетировать. Но cronjobs обычно достаточно хороши и с ними легко работать.

  3. Есть много моментов, которые необходимо сделать при присоединении веб-приложения к пакетному процессору, но, поскольку вы не предоставили достаточно подробностей, на которых я буду опираться, я просто укажу на первый выбор, с которым вы столкнулись при запуске - вы нужно как-то передавать данные.

    Самый простой - это своего рода серверная часть базы данных (выберите яд на основе ваших потребностей / требований / бюджета - от BerkleyDB / SQLite на простом конце до MySQL / Postgress на свободной стороне до Sybase / Oracle для реальных вещей.

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

0 голосов
/ 19 января 2010

В мире Java это обычно работа для системы очереди сообщений.Но я думаю, что работа cron - хороший выбор, если вы находитесь в * nix world.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...