我正在尝试使用daemon-spawn gem运行守护程序进程。 这是delayed_delta守护进程的代码
#file - script/dj
#!/usr/bin/env ruby
# -*- ruby -*-
require 'rubygems'
require 'daemon-spawn'
RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
class DelayedJobWorker ENV['MIN_PRIORITY'],
:max_priority => ENV['MAX_PRIORITY']
).start
end
def stop
system("kill `cat #{RAILS_ROOT}/tmp/delayed_job.pid`")
end
end
DelayedJobWorker.spawn!(:log_file => File.join(RAILS_ROOT, "log", "delayed_job.log"),
:pid_file => File.join(RAILS_ROOT, 'tmp', 'delayed_job.pid'),
:sync_log => true,
:working_dir => RAILS_ROOT)
当我运行
ruby script/dj start
时,这在我的本地机器上运行良好,但是当我在云服务器中运行它时,它会引发一个奇怪的错误
/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- daemon-spawn (LoadError)
from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
from script/dj:4
任何想法?有什么帮助吗?
答案 0 :(得分:3)
我遇到了同样的问题,最初我有alexvollmer-daemon-spawn
,但我无法运行更多的进程,所以我卸载它并安装了daemon-spawn
gem,这对我来说很有用。
注意:使用alexvollmer-daemon-spawn
gem时使用require daemon-spawn
,但使用daemon-spawn
时使用gem daemon_spawn
(使用下划线)。
答案 1 :(得分:2)
有同样的问题。试试
require 'daemon_spawn'
即。使用下划线。
答案 2 :(得分:0)
看起来云服务器没有daemon-spawn gem。你在Heroku或其他什么地方使用捆绑器吗?