我需要一个简单的网络服务器来解析它收到的网址,调用其他重做处理的其他ruby脚本然后返回生成的JSON。
歌利亚适合这个吗?据我所知,请求是按顺序处理的。我该怎么做才能做到这一点?
class MyServer < Goliath::API
def response(env)
res = create_json_response(env["REQUEST_URI"])
[200, {}, res]
end
end
答案 0 :(得分:4)
查看“echo”示例以获得更完整的示例:https://github.com/postrank-labs/goliath/blob/master/examples/echo.rb
Goliath故意让你构建你的堆栈并尝试默认假设 - 这为你提供了优化堆栈的灵活性,但需要花费一些前期设置。
从某个事件循环中提供服务的意义上,“顺序”处理请求。如果您在IO上被阻止,goliath将开始处理下一个请求。但是,如果您决定暂时进行CPU密集型计算,那么您将阻止反应堆。换句话说,这与任何其他“事件”框架(节点等)的行为完全相同。
如果你确实需要做一些繁重的CPU处理,那么你应该将这项工作分拆给工作队列或专职工作人员。