Совместное использование определений моделей между Erlang и Rails (и mongodb) - PullRequest
3 голосов
/ 02 февраля 2010

У меня есть приложение rails, использующее mongodb через mongomapper, и все хорошо. Проблема в том, что ... я собираюсь использовать erlang для некоторой фоновой обработки и хочу обновить те же модели mongo / mongomapper с результатами этой обработки. Каков лучший способ поделиться определениями моделей между двумя приложениями (rails и erlang) и оставаться в здравом уме? Похоже, было бы проблематично пытаться управлять ими по отдельности, если они оба обращаются к одним и тем же записям. Если нет «хорошего» пути, я просто подхожу к этому неправильным путем?

Дополнительная информация: Первоначально я выполнял фоновую обработку с использованием клиентов Starling / Workling. Это хорошо, так как я мог бы использовать все те же модели рельсов и код. Однако производительность была ужасной, поэтому я стараюсь решить некоторые проблемы с эффективностью. Это большой объем обрабатываемых данных, но он может быть легко обработан параллельно.

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

Редактировать: Я хотел бы пролить немного света на это. Обработка erlang должна знать заранее о моделях. Я в основном использую erlang для извлечения данных из других мест и заполнения деталей объектов модели. Так, например, может быть поле описания, которое я извлекаю из XML-файла, используя xmerl_xpath: string ("// description / text ()"). Мне нужно иметь возможность добавлять такие методы, которые будут влиять на поля модели.

1 Ответ

1 голос
/ 07 февраля 2010

MongoDB имеет два поддерживаемых сообществом драйвера Erlang (erlmongo и emongo). Доступ к вашему mongodb через эти драйверы даст вам нативные объекты Erlang.

Ruby -> MongoMapper -> драйвер Ruby Mongo -> MongoDB -> (emongo | erlmongo) -> Erlang

...