0

我确信以前有人解决过这个问题,我很想从你的经验中学习。

架构:服务器 A 是 Web 服务器 服务器 B 是 API 服务器 服务器 C 是数据源

用户在服务器 A 上填写表单 服务器 A 向服务器 B 提交 POST 请求 服务器 B 从服务器 C 获取一些数据,创建图像,将图像上传到服务器 A,返回结果 URL 作为对服务器 A 的响应。

服务器 B 上的工作流非常关键,它需要随时响应,还需要服务许多请求。希望服务器 A 上有成千上万的活跃用户。

我的问题是:如何在不锁定服务器 B 上的 Rails 应用程序的情况下激活最终结果?

我已经在服务器 B 上的动作控制器中对数据获取和图像创建进行了概念验证。我几乎可以肯定这不会很好地执行并提供良好的用户体验。

关于将图像上传到服务器 A,我可以使用 SFTP,但正在考虑在服务器 B 上本地安装服务器 A 的目标文件夹。希望这将减少不必要的登录。

提前感谢您的智慧。

4

1 回答 1

0

你可以看看delay_job。并且有许多可用的宝石,例如resque等。使用delayed_job您可以执行以下操作:

def get_reponse_from_server2  #create a method in your model which does stuff for you
  #do your stuff
end

handle_asynchronously :get_reponse_from_server2
于 2013-04-18T09:45:09.857 回答