自动重新加载Ruby代码

时间:2014-05-07 08:07:48

标签: ruby reload

有没有办法让Ruby脚本像普通(无框架)HHVM / PHP一样工作?但具有at least one thousand updates的高性能?

可能的解决方案:

  • CGI,但他们说它是slow,它可能是..因为每个请求,我们必须重新连接到数据库,重建ORM模型,重新要求每个依赖
  • FastCGI / Rack以及依赖于Rack的任何其他框架,默认情况下不支持自动重新加载,但可以使用以下方法完成*:
  • G-WAN的工作方式与PHP / HHVM类似,但在使用partial feature以外的其他语言时仅支持C

*)当代码行总数很大时,我的笔记本电脑需要大约10秒重新加载..

还有其他解决方案吗? 或者我应该将语言改为符合我要求的任何其他语言吗?

  • 快速准确的自动重新加载,更改的代码会在下次浏览器请求时立即显示(G-WAN C API对我来说太痛苦,编译错误未在浏览器上显示,但在控制台上显示)
  • 快速执行(1000次更新请求)
  • 语言必须有一个很棒的自动完成IDE
  • 简单直接的语法,例如:易于制作数组[]或关联数组{},没有棘手的东西,我不喜欢PHP / Hack / Javascript语法(比较Ruby的简单程度)类到其他语言的类),我不喜欢Java语法和API(比较Ruby的Bignum(3**98765).to_s)与Java BigInteger""+BigInteger.valueOf(3).pow(98765))的简单程度例如)
  • 错误显示在浏览器上,而不是在控制台上
  • 有一个简单的ORM(schema/model应该用它自己的语言写,而不是XML)
  • 应该有PostgreSQL连接器

2 个答案:

答案 0 :(得分:1)

这个问题有很多问题很糟糕,但是为了争论,我认为你错了一件事。

PHP / HHVM本身不起作用,它需要一个Web服务器,Ruby脚本也是如此。 如果你是一个受虐狂,你可以使用直架,但Sinatra很棒,Rails也是如此。 为什么你不能使用其中一个?

“1000个请求”的要求来自哪里? 1000个请求是什么?

IDE要求也令人费解,它与所有其他性能/架构问题无关。 你可以使用RubyMine,我有很多使用它的朋友非常高兴。

答案 1 :(得分:1)

对于生产模式,此Q / A可能会对您有所帮助:Hot deploy Ruby just like PHP: FTP upload file and valid immediately

然而,看起来您指的是开发环境 然后在开发模式下使用Rails可能会很好 在development modeRails重新加载所有csshtmlcontrollers每个请求,因此无需重新启动任何内容。它只是保持数据库连接,因此模型也加载到内存中,这意味着模型的更改需要重新启动Rails。

  

在开发模式下(默认情况下您正在进行此操作),   Rails会根据每个浏览器请求重新加载您的应用程序,所以还有   在进行更改时无需停止并重新启动Web服务器。

来源:http://guides.rubyonrails.org/getting_started.html

我将PowPowder一起使用 powder dev& powder prod会将环境切换为developmentproduction powder restart将在下一个请求时重新启动rails服务器。