【发布时间】:2023-03-13 17:23:01
【问题描述】:
我有 websocket 价格数据流到我的 rails api 应用程序,我想保持更新,这样任何 api 请求都会得到更新的响应。将每次更新都保存到数据库中的成本太高了。我怎样才能做到这一点?在 Ember 中,我可以修改模型并且它仍然存在。它似乎不会发生在 Rails 中。
频道控制器:
def receive(message)
#ActionCable.server.broadcast('channel', message)
platform = Platform.find(params[:id]);
market = platform.markets.find_by market_name: message["market_name"]
market.attributes = {
market.price = message.values["price"],
etc......
}
#market.save [this is too expensive every time]
end
我是否以正确的方式处理这件事?每次我想更新时使用 find 似乎效率也很低,这可能是每秒多次。在 Ember 中,我创建了一个记录 Id 查找数组,以便我可以快速匹配市场名称,我不知道如何在 Rails 中执行此操作。
【问题讨论】:
标签: ruby-on-rails websocket actioncable