我正在使用 Rails 构建一个网站,可以让用户检查是否已注册某些域。逻辑设计如下:
- 页面上有一个文本字段让用户输入一些域名
- 当用户单击
check
按钮时,输入将被发布到服务器 - 服务器获取输入,创建一个后台任务(将在另一个进程中执行),并立即向用户返回一些文本,例如“正在检查...”
- 后台任务会将域名发布到另一个站点,获取响应,解析它以获取有用的信息,然后将数据放入一个全局内存哈希(该任务需要 3 秒)
- 包含“checking now...”的页面有一个javascript函数,将请求服务器获取检查结果。它每 2 秒运行一次,直到得到结果。
- 服务器端有一个动作来处理“检查状态请求”。它检查Globle 内存哈希,找到结果,返回它,否则返回“[]”
(我使用的是 Rails 2.3.8,delayed_job)
我是一名 Java 开发人员,这就是我将在 Java 中做的事情。但是我发现很难为“延迟的工作人员”和“rails”保存一个“全局内存哈希”,因为它们处于不同的进程中。
我的设计在rails中是不可能的吗?我必须将检查结果存储到数据库或类似“memcached”的东西吗?
而且,这些后台任务可以并行运行吗?