1

谢谢你看看这个。

不幸的是,我是 Rails 新手。我目前必须实现 Superfeedr 可以将更新推送到的端点,但该端点必须位于 rails 控制器中。

最初在我看来,这应该是一个运行的后台作业,并且网络的其余部分倾向于同意,但我被迫将其包含为 rails 控制器 - 这让我感到困惑。我不确定如何在请求/响应周期中包含 EventMachine。

我知道网络上有很多例子,但没有一个能真正回答我如何路由这个问题。我不知道。

我有一个名为 Superfeeds 的 rails 控制器。我希望 Superfeeder 将更新推送到 myrailsapp/superfeeds/ 之类的内容

在提要内部,我想检查推送的内容,然后将结果写入另一个实际上有模型并将持久化的控制器。

基本上,名为 Feeds 的控制器只需要接收和传递信息。然而,这让我感到困惑,因为它似乎必须在 rails 控制器内部实现一个长时间运行的进程——我什至不确定这是否可行。

有谁知道这是用 Rails 完成的,但不使用 EventMachine 作为后台作业?最后,我真的只需要知道这是可能的。

-L

4

1 回答 1

0

在提要内部,我想检查推送的内容,然后将结果写入另一个实际上有模型并将持久化的控制器。

为什么不在一个控制器中完成所有工作?如果您试图区分不同的关注点,您甚至可以使用两种模型 - 例如,一种用于检查/解析,另一种用于处理持久化。但是您很少需要或想要将数据从控制器传递到控制器。

我不确定如何在请求/响应周期中包含 EventMachine。

我自己从未使用过 superfeedr,但快速浏览了文档 - 您使用的是 XMPP 还是 PubSubHubbBub 客户端?我假设后者?如果是这样,您希望异步执行持久性(以及任何其他耗时的过程)(请求/响应周期之外),对吗?

如果您使用的是基于 EventMachine 的网络服务器,例如 Thin,基本上每个请求周期都在 EM 反应器中运行。因此,您可以利用 EM 的工具来卸载诸如延迟线程池之类的任务。有关此操作的示例,请查看Enigmamachine,尤其是此处。(我相信另外你的数据库客户端库需要是异步的。)

于 2011-10-19T23:19:59.540 回答