目前我在Heroku上运行了一个小型的 Web应用程序,只有一个dyno 。这个dyno在Unicorn上运行一个带有单个工作队列的Rails应用程序。
配置/ unicorn.rb:
worker_processes 1
timeout 180
@resque_pid = nil
before_fork do |server, worker|
@resque_pid ||= spawn("bundle exec rake jobs:work")
end
我想添加WebSockets功能,但from what I have read Unicorn不是支持faye-websocket的网络服务器之一。有Rainbows!网络服务器基于Unicorn,但我不清楚是否可以切换并保留我的队列工作者的产卵。
我想有一个以上的dyno可以添加另一个dyno来运行彩虹! WebSockets部分的Web服务器,对吧?遗憾的是,这不是一个选择。 有没有办法让我的设置使用单个dyno?
如果没有,还有哪些其他选项可用于从服务器到客户端获取信息,例如基于异步工作完成?我正在使用poll来处理应用程序中的其他内容,即启动由工作进程处理的异步作业,并在完成时轮询客户端(浏览器)将看到完成标志。这有效,但我想尽可能改进它。
我很乐意听取您的经验和建议。提前谢谢!