更新:
如果您有同样的问题,请阅读“指示延迟作业已完成的 ajax 进程”。谢谢吉恩。_
我有并发问题。我有一个控制器抓取几个网站,但每次调用我的控制器需要大约 4-5 秒才能响应。
因此,如果我连续调用 2 次(或更多)次,则第二次调用需要在开始之前等待第一次调用。
那么如何在我的控制器中解决这个问题呢?也许像 EventMachine 这样的东西?
更新和示例:
application_controller.rb
def func1
i=0
while i<=2
puts "func1 at: #{Time.now}"
sleep(2)
i=i+1
end
end
def func2
j=0
while j<=2
puts "func2 at: #{Time.now}"
sleep(1)
j=j+1
end
end
不管是什么控制器.rb
puts ">>>>>>>> Started At #{Time.now}"
func1()
func2()
puts "End at #{Time.now}"
所以现在我需要从同一个用户/浏览器/等同时多次请求http://myawesome.app/whatever 。
我用 Unicorn 尝试了 Heroku(和本地),但没有成功,这是我的设置:
- 独角兽.rb http://pastebin.com/QL0wdGx0
- Procfile http://pastebin.com/RrTtNWJZ
- Heroku 设置 https://www.dropbox.com/s/wxwr5v4p61524tv/Screenshot%202014-02-20%2010.33.16.png
要求:
- 我需要一个 RESTful 解决方案。这是 API,所以我需要响应 JSON
更多信息: 我现在有 2 个云服务器正在运行。
- Heroku 与独角兽
- Engineyard Cloud 与 Nginx + Panssenger