ruby-on-rails - 带有 Rails 3.1 的 Ruby 守护进程与 "run"一起工作,在生产环境中不与 "start"一起工作

标签 ruby-on-rails ruby

我的 Rails 3.1 应用程序中有一个自定义守护进程。如果我调用,守护进程在我的开发环境中工作

ruby script/daemon.rb start

在我的生产环境中,如果我使用相同的命令,守护进程会启动,但它会立即关闭并且在我的日志中没有任何痕迹。另一方面,如果我使用

ruby script/daemon.rb run

它有效。为什么?而且 - 我在哪里可以找到发生的事情的日志?

我的守护进程脚本是这样的:

require 'daemons'
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))

Daemons.run_proc('mydaemon') do
  logger = ActiveSupport::BufferedLogger.new(
    File.join(Rails.root, "log", "mydaemon.log"),Logger::INFO)
  Rails.logger = logger
  ActiveRecord::Base.logger = logger

  loop do
    MyClass.dosomething
    sleep(5)
  end
end

最佳答案

查看守护程序 gem 的文档:http://daemons.rubyforge.org/classes/Daemons.html#M000005

具体来说,看看 :log_output 选项。

关于ruby-on-rails - 带有 Rails 3.1 的 Ruby 守护进程与 "run"一起工作,在生产环境中不与 "start"一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149357/

相关文章:

ruby-on-rails - 存储文件以供下载的最佳位置

ruby-on-rails - 未定义的方法 `edit_..._path'

ruby - 是否可以在这里使用标准断言而不是模拟期望?

java - 是否有将 Scheme/Java/Ruby 代码翻译成英文句子的程序?

mysql - Ruby MySQL 数据库迁移脚本

javascript - jPlayer javascript 事件触发器仅适用于第一首歌曲

ruby-on-rails - 如何设置 "dynamically"变量值?

ruby - 有人可以帮我理解以下 Ruby 片段吗?

ruby-on-rails - Capistrano 错误:Sprockets::FileNotFound:找不到文件 'bootstrap-sprockets'

ruby - ruby 中的 spaceship <=> 运算符如何抛出异常?