我需要一个简单的网络服务器,解析它收到的网址,调用一些其他的ruby脚本做一些繁重的处理,然后返回结果JSON。
Goliath适合做这个吗?据我所知,这些请求是按顺序处理的。我应该怎么做才能让它变得正确呢?
class MyServer < Goliath::API
def response(env)
res = create_json_response(env["REQUEST_URI"])
[200, {}, res]
end
end发布于 2012-03-27 14:47:10
看一下"echo“示例,以获得更完整的示例:https://github.com/postrank-labs/goliath/blob/master/examples/echo.rb
Goliath故意让你构建你的堆栈,并试图在默认情况下假设很少-这给了你优化堆栈的灵活性,但代价是一些前期设置。
这些请求是“顺序”处理的,从某种意义上说,它们是由一个事件循环提供服务的。如果你在IO上被阻塞,goliath将开始处理下一个请求。但是,如果你决定在一段时间内进行CPU密集型计算,那么你就会阻塞反应堆。换句话说,这与任何其他“事件”框架(节点等)的行为完全相同。
如果您确实需要执行一些繁重的CPU处理,那么您应该将这些工作转到一个工作队列或专用的工作进程。
https://stackoverflow.com/questions/9811812
复制相似问题