Skip to content

Commit

Permalink
Rework script/delayed_job so it can be used as a plugin or a gem. Closes
Browse files Browse the repository at this point in the history
  • Loading branch information
bkeepers committed Sep 6, 2009
1 parent d58a26d commit 4d76b8d
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 12 deletions.
6 changes: 2 additions & 4 deletions generators/delayed_job/templates/script
@@ -1,7 +1,5 @@
#!/usr/bin/env ruby

# Daemons sets pwd to /, so we have to explicitly set RAILS_ROOT
RAILS_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))

require File.join(File.dirname(__FILE__), *%w(.. vendor plugins delayed_job lib delayed command))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require 'delayed/command'
Delayed::Command.new(ARGV).daemonize
15 changes: 7 additions & 8 deletions lib/delayed/command.rb
@@ -1,4 +1,3 @@
require 'rubygems'
require 'daemons'
require 'optparse'

Expand Down Expand Up @@ -44,14 +43,14 @@ def daemonize

def run(worker_name = nil)
Dir.chdir(RAILS_ROOT)
require File.join(RAILS_ROOT, 'config', 'environment')

# Replace the default logger
logger = Logger.new(File.join(RAILS_ROOT, 'log', 'delayed_job.log'))
logger.level = ActiveRecord::Base.logger.level
ActiveRecord::Base.logger = logger
ActiveRecord::Base.clear_active_connections!
Delayed::Worker.logger = logger
# Replace the default logger…too bad Rails doesn't make this easier
Rails.logger.instance_eval do
@log.reopen File.join(RAILS_ROOT, 'log', 'delayed_job.log')
end
Delayed::Worker.logger = Rails.logger
ActiveRecord::Base.connection.reconnect!

Delayed::Job.worker_name = "#{worker_name} #{Delayed::Job.worker_name}"

Delayed::Worker.new(@options).start
Expand Down

0 comments on commit 4d76b8d

Please sign in to comment.