- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近在升级到 rails 3 时从 mongrel 切换到 Thin。在切换之前,我们一直在使用 EventMachine 没有任何问题。切换到瘦后,每当调用 EventMachine 时,服务器都会轰炸并说我们返回的变量是 nil。
据我了解,thin 使用 EventMachine,这可能会导致与 Mongrel 使用的实现发生冲突。我使用 EventMachine 的次数不多,但似乎我需要在另一个实例中运行 EventMachine 以将其与 Thin 使用的 EventMachine 分开。我在正确的 rails 上吗?我将如何立即将其运行在与 Thin 的 EventMachine 分开的自己的进程中?
这是我们目前已经实现的 EventMachine 的片段
def connect
EventMachine.run {
args, options = {
:query => @options[:query],
:head => @options[:headers]
}, {
:connect_timeout => @options[:timeout],
:inactivity_timeout => @options[:timeout]
}
args[:body] = @options[:data] if allow_body?
args[:redirects] = @options[:redirects] if @options[:redirects]
http = EventMachine::HttpRequest.new(@uri, options).send(@options[:method], args)
http.errback {
@response = HttpConnection::Response.new(http, false, @options[:logger])
EventMachine.stop
}
http.callback {
@response = HttpConnection::Response.new(http, true, @options[:logger])
EventMachine.stop
}
}
return @response
end
最佳答案
Thin 已经提供并管理了一个 EventMachine react 器,因此您无需单独设置一个。我认为您不需要将此代码嵌入到 EventMachine.run {}
中。 block 的初学者。
您的方法在这里存在一些问题。首先,返回的@response
变量将始终为零,因为 EventMachine::HttpRequest
异步发生,在你点击 http.callback {}
之前不会给你任何数据堵塞。其次,在每个 EventMachine::HttpRequest
回调,您正在调用 EventMachine.stop
.这将产生停止 thin
的效果。网络服务器,这可能就是您看到服务器轰炸的原因。
如果您尝试在 Rails 应用程序中运行此类代码,您可能需要找到一种异步处理调用的方法,以便应用程序在等待长时间运行的进程发生时不会挂起。我为此使用的一个好方法是使用 Sinatra,它有一个 async插件,允许您保持打开的长时间运行的请求。然后,您可以使用 rails metal 将其包含在您的 rails3 应用程序中,以便将对您的 async/eventmachine 代码的请求路由到 sinatra。
关于ruby-on-rails - 将 EventMachine 与 Thin 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022991/
我使用 Circus 作为 Rails 项目的主管,但在让它与我选择的 Ruby 服务器 Thin 一起工作时遇到了一些奇怪的问题。这是我的circus.ini: [circus] check_del
我正在尝试了解 bundle exec 的工作原理及其作用。我已经使用 bundle install 安装了 gems,如下所示: bundle install --binstubs ./bundle
在尝试将 Rails 应用程序部署到服务器时,我遇到了一个问题,即当我尝试使用 cap production deploy:start 为它加注星标时,“thin”没有加注星标。真正奇怪的是,它没有任
我正在尝试为我的应用程序精简,但随后无法生成 pid: $ thin -C /var/www/project_path/current/config/myproject.testing.yml sta
我指的是 pub railscast tutorial并已正确执行所有步骤,但在运行最后一个命令时,即 rackup private_pub.ru -s thin -E production 为了架设
我正在从我的私有(private) git 存储库安装应用程序。我安装了所有依赖项并且我正在使用 Capistrano。我能够在我的本地计算机上成功运行应用程序。我正在使用 rails -v 3.2.
我让它与 Puma 一起工作,但使用 Thin 我没有得到任何流输出,我必须杀死服务器才能停止它。我正在使用tenderlove输出当前时间的初始示例进行测试: http://tenderlovema
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
有没有办法在“ Google文档”文档中使用Roboto Thin字体? 我找到了一种添加Roboto字体的方法(通过“更多字体...”),但是我还没有找到一种设置Thin或Light版本的方法。 最
在为 textview 设置自定义字体时,我只能选择普通、粗体或斜体: 在以下示例中,如何将样式设置为 light 而不是粗体? 最佳答案 这是特定于字体的。并非所有字体都有 light、mediu
在我的生产服务器上,我收到 Missing template有时异常(exception)。 设置是 VPN 与 CentOS5、ruby 1.9.2、Rails 3.2.1、8 个 nginx 实例
我正在尝试在 Linux 的 QML 中使用 robot thin 字体。我在 ubuntu 上安装了粗体、细体和浅体。 openoffice 等其他程序只显示 roboto。我如何在 qml 中使用
我正在尝试在 Linux 的 QML 中使用 robot thin 字体。我在 ubuntu 上安装了粗体、细体和浅体。 openoffice 等其他程序只显示 roboto。我如何在 qml 中使用
我需要在 Swing 中选择一个标准容器(JPanel?),我可以将其用作占位符,我可以向其中添加另一个扩展 JPanel 的自定义组件: JPanel containerPanel; // buil
默认情况下,Apple 似乎只允许 @3x、@2x 和 @1x 作为图像和应用程序瘦身的后缀。 @3x 资源似乎是为 iPhone 6/7 Plus 保留的,尽管它们的屏幕分辨率小于最大的 iPad
我知道我可以选择使用 --ssl-verify 来验证客户端,但是我如何指定我想使用哪个 CA 链?我习惯于提供一个文件(比如 curl 的 --cacert 或 WEBrick 的 :SSLCACe
因为它是无线程的, ruby 基薄片可以吗? 最佳答案 要进行异步连接,返回 -1 作为您的响应代码,并使用事件机器可延迟执行一些操作。 检查异步 thin examples了解更多信息。 关于rub
我写了一个小脚本来使用 Sinatra 和 Thin 按字节流式传输文件: #!/usr/bin/env ruby require 'sinatra' require "sinatra/streami
我正在使用 casrack-the-authenticator gem 进行 CAS 身份验证。我的服务器在 Sinatra 上运行 Thin。我已经让 CAS 身份验证位正常工作,但我不确定如何告诉
我正在尝试使用这个 program它实现了基于像素的“细化”算法的扩展,该算法可以找到位图的骨架。 自述文件中告诉我应该执行“make”命令,然后执行“./test -image-file test1
我是一名优秀的程序员,十分优秀!