Ruby on rails 3 轮询连续API调用的状态
我正在构建一个简单表单的应用程序。将查询放置在多个表单元素中,然后单击“提交” 这会向第三方API提交(相当)大量API调用,以在第三方应用程序中创建必要的对象,执行它们,然后将结果返回给我的应用程序 这个过程需要5-30秒 我想让它做的是在一个部分中呈现结果(想想SQLIDE,比如SSMS或TOAD或其他什么——顶部的输入,在下面返回结果)。我希望在流程中的每个步骤之后都能刷新此部分,并向用户显示任务的状态。目前,该应用程序只是坐着旋转,直到所有这些复杂且IO繁重的业务逻辑完成,这将导致糟糕的用户体验 因此,假设通过第三方API采取的步骤是:Ruby on rails 3 轮询连续API调用的状态,ruby-on-rails-3,jquery,Ruby On Rails 3,Jquery,我正在构建一个简单表单的应用程序。将查询放置在多个表单元素中,然后单击“提交” 这会向第三方API提交(相当)大量API调用,以在第三方应用程序中创建必要的对象,执行它们,然后将结果返回给我的应用程序 这个过程需要5-30秒 我想让它做的是在一个部分中呈现结果(想想SQLIDE,比如SSMS或TOAD或其他什么——顶部的输入,在下面返回结果)。我希望在流程中的每个步骤之后都能刷新此部分,并向用户显示任务的状态。目前,该应用程序只是坐着旋转,直到所有这些复杂且IO繁重的业务逻辑完成,这将导致糟糕的
有什么想法吗 作为草图解决方案/算法:
- 需要一个共享数据资源,默认情况下谈论memcache,尽管可以使用SHM等。我以前已经通过内部套接字实现了这一点,但这是针对固定工作人口的
- 主活动请求会像现在一样发送到服务器。
- 服务器创建一个memcache句柄
- 返回对客户端的引用(快速)
- 客户端事件循环在POST上启动(通过jQueryAjax猜测)。
- 每X一次,都会轮询服务器的当前请求状态(JSON?)
- 用户界面已更新
- 服务器完成第三方操作
- 下一次民意测验将返回更多信息(结果)
- 服务器破坏memcache句柄
- 添加一个中止按钮
- 日志项(如syslogd输出)
- 事件(如syslog的win2k版本)
- 正在更新的文本缓冲区输出