【问题标题】:sinatra service [duplicate]sinatra 服务 [重复]
【发布时间】:2012-09-26 23:13:09
【问题描述】:

可能重复:
Is Sinatra multi threaded?

我有一个需要在 Ruby 1.8.7 上运行的 Web 服务。目前我正在使用带有 Thin 的 Sinatra 来托管服务。

我做了一个测试来提交两个请求:“A”和“B”。如果我只提交 A,这只是一个“helloworld”请求,我会立即得到结果。如果我先发送请求 B,这比请求 A 花费更多的时间和资源,我会在大约同一时间收到 A 和 B 的结果。似乎 Sinatra 同步处理它们。

有没有办法让 Sinatra 成为多线程?

【问题讨论】:

标签: ruby sinatra


【解决方案1】:

您可能想查看async-sinatra

【讨论】:

    【解决方案2】:

    Thin 是多线程的,但您需要告诉它要启动多少台服务器:thin start --servers 3。否则它将没有足够的工人来满足您的要求。请参阅文档中的 Usage

    【讨论】:

    • 这是一个很好的解决方法,但它不是一个完整的解决方案。 --servers n 参数启动 n 守护程序侦听 n 不同 端口。如果我对 OP 的理解正确,那么目标是让一个守护进程异步监听 single 端口。
    • 是的,这就是 Jan 的意思。Sinatra-synchrony 做得很好,但由于某些原因我不得不继续使用 Ruby 1.8.7...
    • @user858931,您能否更新问题以使其清楚?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 2013-02-20
    • 1970-01-01
    • 2020-05-07
    相关资源
    最近更新 更多