标签: thin

获取异步http请求以在rails 3beta4/ruby​​ 1.9.2-rc2/thin/eventmachine上工作

我一直在尝试在我的应用程序中使用基本的异步HTTP调用.

我尝试在我的应用程序中使用Rails 3异步堆栈演示中的一些代码:http://github.com/igrigorik/async-rails,但我得到"不能从根光纤中产生"而且我没有想从哪里开始.这是我追踪的最高点:

(eval):10:in `yield'
(eval):10:in `get'
app/controllers/home_controller.rb:62:in `index'
/Users/ct/.rvm/gems/ruby-1.9.2-rc2@og/gems/actionpack-3.0.0.beta4/lib/action_controller/metal/implicit_render.rb:4:in `send_action'
/Users/ct/.rvm/gems/ruby-1.9.2-rc2@og/gems/actionpack-3.0.0.beta4/lib/abstract_controller/base.rb:145:in `process_action'
Run Code Online (Sandbox Code Playgroud)

我的索引控制器方法很简单:

def index
  http = EM::HttpRequest.new("http://www.google.com/").get
  render :text => http.response
end
Run Code Online (Sandbox Code Playgroud)

我有所有正确的宝石,我有1.9.2-rc2,rails 3 beta 4,而且我很瘦.我也得到了async-rails应用程序本身使用相同的rvm和gemset运行良好.eventmachine reactor肯定在我的应用程序中运行.我喜欢任何有关如何使其正常工作的提示!

asynchronous thin eventmachine ruby-on-rails-3

5
推荐指数
0
解决办法
1103
查看次数

Heroku RACK_ENV在Thin上说"开发",但在Unicorn上"演出"

我遇到了这种行为,并想知道是否有其他人看过它.我有一个解决方法,所以它不是一个显示阻止.

我在Heroku上用Cedar堆栈创建了一个新的应用程序.在演示多个环境时,我添加了以下config var:

heroku config:add RACK_ENV=staging --app appname

我在视觉上验证了环境var的设置,然后在我的简单Sinatra示例中放入以下路由:

get '/?' do
  ENV['RACK_ENV']
end
Run Code Online (Sandbox Code Playgroud)

当我在笔记本电脑上进行本地测试时,我收到了预期development.

当我推到Heroku并在herokuapp.com上点击相同的路线时,我得到了development而不是staging.

我通过Procfile将Web服务器从Thin切换到Unicorn,并将更改推回到Heroku.

现在,当我到达路线时,我得到了预期staging.

有没有人见过这个?我在另一个运行Thin的项目上的解决方法是关闭New Relic应用程序名称的环境.(我没有切换到Unicorn,因为我需要New Relic来工作,目前Cedar和New Relic和Unicorn一起工作).

ruby heroku thin staging unicorn

5
推荐指数
1
解决办法
4850
查看次数

无法启动瘦服务器作为服务,RubyGems:找不到瘦

我使用以下说明在Ubuntu 10.04.4上使用Rails 3.2.3在瘦服务器上安装和配置服务:

http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby

瘦服务器可以从应用程序根运行它,使用'瘦启动'

但是,当我尝试使用以下任何命令运行该服务时:

service thin start
sudo service thin start
/etc/init.d/thin start
sudo /etc/init.d/thin start
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

/home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find thin (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
    from /home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这似乎不是PATH的问题,'瘦'正确返回:

home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin
Run Code Online (Sandbox Code Playgroud)

我还在其所引用的地方验证了**/bin/thin的存在

我尝试使用'gem uninstall thin'重新安装gem,'gem install thin'没有成功

有谁之前经历过这个吗?我只发现了另一个此问题的实例: 无法通过远程计算机重新启动瘦身

这个问题似乎只是在ssh上,而我甚至无法在本地启动瘦服务

谢谢

ruby-on-rails thin

5
推荐指数
2
解决办法
8173
查看次数

我怎样才能优雅地重启瘦+ nginx?

我的瘦服务器配置了nginx,我的ROR应用程序正在运行.

thin restart当我发布代码更新时运行会给我的应用程序带来一些停机时间.我试图想象如何优雅地重新启动正在运行的Thin实例,但我找不到一个好的解决方案.

有没有人能够做到这一点?

ruby capistrano ruby-on-rails nginx thin

5
推荐指数
1
解决办法
4911
查看次数

在oracle 11G r2中连接Java瘦驱动程序的问题

public static  Connection getConnection()throws SQLException,ClassNotFoundException
       { String username="scott";
            String password="tiger";

            String url="jdbc:oracle:thin:@localhost:1521";
        Connection connection = null;
        System.out.println("before class");
                   Class.forName("oracle.jdbc.OracleDriver");
                   System.out.println("Before connection");
                connection=DriverManager.getConnection(url,username,password);
           System.out.println("CONNECTED");
        return connection;
       }
Run Code Online (Sandbox Code Playgroud)

连接名称:orcl用户名:scott密码:tiger连接详细信息:scott @

我正在使用Oracle g11 Release 2,我已经在构建路径中包含了ojdbc.jar.尝试建立连接时,我收到以下堆栈跟踪错误:

java.sql.SQLException:Io异常:无效的连接字符串格式,有效格式为:"host:port:sid",位于oracle.jdbc.dbaccess的oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134). DBError.throwSqlException(DBError.java:179)位于oracle.jdbc.driver的oracle.jdbc.driver.OracleConnection上的oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333).(OracleConnection.java:404). OracleDriver.getConnectionInstance(OracleDriver.java:468)位于java.sql.DriverManager.getConnection(未知来源)java.sql.DriverManager.getConnection(未知来源)的oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) )com.adobe.util.DBConnection $ DBUtil.getConnection(DBConnection.java:23)at com.adobe.daoimpl.DBimplementation.registration(DBimplementation.java:21)at com.adobe.service.AdobeService.registration(AdobeService. java:13)at webservice.Web.service(Web.java:16)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.inv 来自org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java)的java.lang.reflect.Method.invoke(未知来源)的sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)的oke(未知来源): 397)在org.apache.axis的org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) .strategies.InvocationStrategy.visit(InvocationStrategy.java:32)org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)atg.apache.axis.SimpleChain.invoke(SimpleChain.java:83)at org.位于org.apache.axis.transport.http.AxisServlet的org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)中的apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454). doPost(AxisServlet.java:699)位于javax.servlet的org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)的javax.servlet.http.HttpServlet.service(HttpServlet.java:647) .http.HttpServlet.service(HttpServlet的 .java:728)org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)

提前致谢

java sqlexception thin oracle11g

5
推荐指数
2
解决办法
2万
查看次数

Ruby on Rails环回请求导致死锁?

我正在开发模式中切换到独角兽.需要一个针对每个递归级别的工作进程来防止死锁情况,因此我运行了2个工作进程.

问题

我正在开发环境中使用Thin服务器.我使用端口3000(dev环境中的默认值).我的问题是让服务器向自己发出请求.

假设我有以下控制器:

# app/controllers/recursions_controller.rb
class RecursionsController < ApplicationController

    # /recursions
    def index

        # synchronously call recursions#show
        RestClient.get("http://localhost:3000/recursions/1") 

        # finish!
        render :text => 'index'

    end

    # /recursions/:id
    def show

        # finish immediately
        render :text => 'show'

    end

end
Run Code Online (Sandbox Code Playgroud)

这是相应的路线:

# config/routes.rb
resources :recursions
Run Code Online (Sandbox Code Playgroud)

这是我最初请求时请求日志的输出recursions#index:

[INFO] 2013-01-15 12:09:05 -0800 Started GET "/recursions" for 127.0.0.1 at 2013-01-15 12:09:05 -0800
Processing by RecursionsController#index as HTML
Completed 500 Internal Server Error in 60049ms

[FATAL] 2013-01-15 12:10:05 -0800 RestClient::RequestTimeout …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails thin unicorn

5
推荐指数
1
解决办法
1211
查看次数

Sinatra:Hash的未定义方法字节大小

我正在创建一个Sinatra应用程序,它采用上传的CSV文件并将其内容放入哈希值.当我在app.rb中引用此哈希时,如下所示:

hash = extract_values(path_to_filename)

我一直收到此错误消息:

用于Hash的未定义方法`bytesize':0x007fc5e28f2b90 #object_id

file:utils.rb位置:bytesize行:335

我在某处读到这是一个Webrick问题.我切换到Thin,错误是一样的.

我的哈希/ CSV文件的大小非常小,所以它不是问题.

我正在使用ruby 1.9.3p374.

谢谢!

ruby hash thin webrick sinatra

5
推荐指数
1
解决办法
8882
查看次数

将Rails服务器绑定到Linux上的端口80,而不以root身份运行它

我正在尝试找到一种方法将生产Rails服务器绑定到端口80,而无需使用root权限运行整个服务器.我的问题基本上与" 在Linux上绑定到"特权"端口(<1024)的非根进程有没有办法? ",除了我需要使用Rails执行此操作.目前,我引用的问题的前两个答案要求我授予CAP_NET_BIND_SERVICERuby解释器的权限(可能不是一个好主意)或在启动服务器后删除root权限(我不确定Ruby是否可行).有任何想法吗?

ruby linux ruby-on-rails thin

5
推荐指数
1
解决办法
2734
查看次数

对并发请求使用瘦

我有一个带有简单控制器的Rails 4.1应用程序,该控制器可以流式传输响应:

class ServerSentEventsController < ApplicationController
  include ActionController::Live

  def index
    response.headers['Content-Type'] = 'text/event-stream'
    sse = ServerSentEvent.new(response.stream)

    begin
      loop do
        sse.write(time: Time.now)
        sleep 1
      end
    rescue IOError
      # When the client disconnects, we'll get an IOError on write
    ensure
      sse.close
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当我将puma添加到我的gemfile并使用此路由针对此路由发出请求时,curl得到的响应是预期的:

curl -i 'http://localhost:3000/sse'
<!-- truncated headers output -->    
data: {"time":"2014-08-29 05:16:00 +0100"}

data: {"time":"2014-08-29 05:16:01 +0100"}

data: {"time":"2014-08-29 05:16:02 +0100"}
Run Code Online (Sandbox Code Playgroud)

当我切换到在我的Gemfile,并要求整个事情锁定。我在多个地方都读过,thin可以处理并发请求,但是我似乎无法使其正常工作。

我只是通过跑步来开始美洲豹bundle exec rails server。对于瘦身我已经尝试了bundle exec rails server …

ruby multithreading ruby-on-rails thin ruby-on-rails-4

5
推荐指数
1
解决办法
2497
查看次数

如何从命令行运行Sinatra应用程序作为deamon?

如何从命令行运行Sinatra应用程序作为deamon?

它使用Thin:

ruby app.rb -p 3000 -e production
Run Code Online (Sandbox Code Playgroud)

我不喜欢在app.rb中设置它.我想从命令行deamonise它.

thin sinatra

5
推荐指数
1
解决办法
1666
查看次数