1

我需要将 ruby​​ 脚本作为服务运行。该脚本需要访问 rails-app 的 ActiveRecords。

最好的方法是什么?耙子任务?如何在 Windows 和 linux 上将它作为服务启动?

4

3 回答 3

2

这个 Stackoverflow 线程似乎对如何在 Windows 上将 Ruby 作为服务运行有一个很好的答案:Running a Ruby Program as a Windows Service?

这里是如何在 Rails 之外实例化 ActiveRecord:http ://www.juixe.com/techknow/index.php/2009/01/14/activerecord-ruby-on-rails-optional/

如果您想使用与 Rails 应用程序相同的模型,您可以要求它们。

这是控制台中的一个示例:

irb(main):001:0> require 'ActiveRecord'
=> true
irb(main):002:0>     ActiveRecord::Base.establish_connection(
irb(main):003:1*       :adapter => 'mysql',
irb(main):004:1*       :database => 'development',
irb(main):005:1*       :username => 'root',
irb(main):006:1*       :password => '',
irb(main):007:1*       :host => 'localhost'
irb(main):008:1>     )
=> #<ActiveRecord::ConnectionAdapters::ConnectionPool:0x59613
irb(main):009:0> require 'app/models/User.rb'
=> ["User"]
irb(main):010:0> User.find(1)
=> #<User id: 1, first_name: "Michael">

祝你好运!

于 2009-03-29T19:21:03.420 回答
1

我想说,如果 Sinatra 应用程序只是一个脚本即服务,那么它可能是可行的方法。

于 2009-03-29T12:17:05.357 回答
0

我将使用 自定义守护程序

于 2009-03-31T08:21:37.390 回答