Как использовать EventMachine (superfeeder-ruby gem) в контроллере Rails? - PullRequest
1 голос
/ 20 октября 2011

спасибо, что взглянули на это.

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

Первоначально мне казалось, что это должна быть фоновая работа, которая выполняется, и остальная часть сети имеет тенденцию соглашаться, но меня заставляют включать это как контроллер рельсов - что меня смущает. Я не уверен, как включить EventMachine в цикл запроса / ответа.

Я знаю, что в Интернете полно примеров, но никто не отвечает на мой вопрос о том, как это маршрутизировать. Понятия не имею.

У меня есть контроллер рельсов, который называется Superfeeds. Я хочу, чтобы Superfeeder отправлял обновления на что-то вроде myrailsapp / superfeeds /

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

По сути, контролер под названием Feeds просто должен получать и передавать информацию. Однако это смущает меня, потому что кажется, что нужно реализовать что-то, что является длительным процессом внутри контроллера rails - и я даже не уверен, может ли это работать.

Кто-нибудь знает, как это было сделано с рельсами, но не использовал EventMachine в качестве фоновой работы? В конце концов, мне действительно нужно знать, что это возможно.

-L

1 Ответ

0 голосов
/ 20 октября 2011

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

Почему бы не сделать всеработать в одном контроллере?Если вы пытаетесь разделить различные проблемы, вы можете даже использовать две модели - например, одну для проверки / анализа и одну для обработки сохраняющихся.Но редко вам понадобится или вы захотите передать данные с контроллера на контроллер.

Я не уверен, как включить EventMachine в цикл запроса / ответа.

Никогдасам использовал superfeedr, но быстро просмотрел документы - используете ли вы клиент XMPP или PubSubHubbBub?Я полагаю, последний?Если это так, вы хотите сделать асинхронный (и любой другой процесс, требующий много времени) асинхронным ( вне цикла запроса / ответа), верно?

Если вы используете веб-сервер на основе EventMachine, такой как Thin, в основном каждый цикл запроса выполняется внутри реактора EM.Таким образом, вы можете использовать возможности EM для разгрузки задач, таких как пул отложенных потоков.Для примера этого в действии, посмотрите Enigmamachine , в частности здесь .(Я считаю, что ваша клиентская библиотека db должна быть асинхронной.)

...