gpt4 book ai didi

ruby - 使用 Goliath 进行异步 Web 处理

转载 作者:数据小太阳 更新时间:2023-10-29 08:40:09 24 4
gpt4 key购买 nike

我需要一个简单的网络服务器来解析它接收到的 url,调用一些其他的 ruby​​ 脚本来做一些繁重的处理,然后返回结果 JSON。

歌利亚适合这个吗?据我所知,请求是按顺序处理的。我应该怎么做才能做到这一点?

class MyServer < Goliath::API
def response(env)
res = create_json_response(env["REQUEST_URI"])
[200, {}, res]
end
end

最佳答案

查看“echo”示例以获得更完整的示例:https://github.com/postrank-labs/goliath/blob/master/examples/echo.rb

Goliath 有意让您建立自己的堆栈,并尝试在默认情况下假设很少 - 这让您可以灵活地优化堆栈,但要付出一些前期设置的代价。

请求是“按顺序”处理的,从某种意义上说,它们是从事件循环中得到服务的。如果你在 IO 上被阻塞,goliath 将开始处理下一个请求。但是,如果您决定进行一段时间的 CPU 密集型计算,那么您将阻塞 react 堆。换句话说,这与任何其他“事件”框架(节点等)的行为完全相同。

如果您确实需要进行一些繁重的 CPU 处理,那么您应该将该工作分派(dispatch)给工作队列或专门的工作人员。

关于ruby - 使用 Goliath 进行异步 Web 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9811812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com