【发布时间】:2015-08-14 18:25:32
【问题描述】:
每隔 n 秒,应用程序就会请求一个远程 JSON 文件,该文件提供交易系统中证券的实时价格。 JSON 有一个包含我需要的数据的块 (marketdata) 和一个包含当前 dataversion(version 和 seqnum) 的块。
现在我使用ActionController::Live(在客户端使用EventSource)将更新的数据推送到浏览器。所有操作都在一种方法中完成:
- 打开 SSE 连接;
- 形成动态网址;
- 从远程服务器拉取新数据;
- 比较/重新分配
seqnum值; - 根据需要更新数据库。
所以我现在的目标是通过将更新的值推送到浏览器 (ActionController::Live) 分开拉取和更新数据库 (ActiveJob)。为此,我需要:
- 要么存储在服务器端
seqnum和version的某个位置,以便在控制器和后台作业之间共享; - 或监视数据库以了解
updated_at字段中的最新更改。
所以基本上我有两个问题:
- 以上两个选项之间哪个更有效?还有其他好的方法吗?
- (如果第一个有权存在)如何实现这种方法?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-4.2 rails-activejob