Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Switched from backgroundrb to workling/starling.
  • Loading branch information
bamnet committed Jul 23, 2009
1 parent 0b8af4e commit d33890a
Show file tree
Hide file tree
Showing 190 changed files with 2,377 additions and 5,883 deletions.
2 changes: 1 addition & 1 deletion app/controllers/conversions_controller.rb
Expand Up @@ -34,7 +34,7 @@ def create

respond_to do |format|
if @conversion.save
MiddleMan.worker(:video_worker).enq_queue_convert(:args => {:conversion_id => @conversion.id}, :job_key => @conversion.id)
VideoWorker.asynch_convert(:conversion_id => @conversion.id)
flash[:notice] = 'Conversion was successfully created.'
format.html { redirect_to(@conversion) }
format.xml { render :xml => @conversion, :status => :created, :location => @conversion }
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/thumbnails_controller.rb
Expand Up @@ -44,14 +44,14 @@ def create

respond_to do |format|
if @thumbnail.save
MiddleMan.worker(:thumbnail_worker).enq_queue_thumbnail(:args => {:thumbnail_id => @thumbnail.id}, :job_key => @thumbnail.id)
ThumbnailWorker.asynch_generate(:thumbnail_id => @thumbnail.id)
if request.xhr?
@thumbnails = Thumbnail.find(:all, :conditions=>{:video_id => params[:video_id]})
@video = Video.find(:first, :conditions=>{:id => params[:video_id]})
render :layout => false, :partial => 'grid', :locals => {:thumbnails => @thumbnails, :video => @video, :controls=> true} and return
end
flash[:notice] = 'Thumbnail was successfully created.'
format.html { redirect_to(video_thumbnail_path(@thumbnail.video, @thumbnail)) }
format.html { redirect_to(video_thumbnails_path(@thumbnail.video)) }
format.xml { render :xml => @thumbnail, :status => :created, :location => @thumbnail }
else
format.html { render :action => "new" }
Expand Down
@@ -1,15 +1,4 @@
class ThumbnailWorker < BackgrounDRb::MetaWorker
set_worker_name :thumbnail_worker
pool_size 2
def create(args = nil)
logger.info("Creating thumbnail worker")
end
#Queue the request for a thumbnail
def queue_thumbnail(args)
thumbnail = Thumbnail.find(args[:thumbnail_id])
thumbnail.update_attributes({:status => "queued"})
thread_pool.defer(:generate,args)
end
class ThumbnailWorker < Workling::Base
#Generate a thumbnail
def generate(args = nil)
logger.info("Calling generate method for thumbnail #{args[:thumbnail_id]}.")
Expand All @@ -31,7 +20,6 @@ def generate(args = nil)
thumbnail.update_attributes({:status => "failed"})
return false
end
persistent_job.finish!
end
end

19 changes: 1 addition & 18 deletions lib/workers/video_worker.rb → app/workers/video_worker.rb
@@ -1,17 +1,4 @@
class VideoWorker < BackgrounDRb::MetaWorker
set_worker_name :video_worker
pool_size 5
def create(args = nil)
logger.info("Creating converter worker.")
end

#Queue up the video for conversion
def queue_convert(args)
conversion = Conversion.find(args[:conversion_id])
conversion.update_attributes({:status => "queued"})
thread_pool.defer(:convert,args)
end

class VideoWorker < Workling::Base
#Run the conversion of the video
def convert(args = nil)
#Open all the objects we'll need
Expand Down Expand Up @@ -77,10 +64,6 @@ def convert(args = nil)
conversion.update_attributes({:status => "failed", :end_time => Time.now})
end
end

#Mark this job as complete in the job queue
conversion.append_to_log "Marking job as complete."
persistent_job.finish!
end


Expand Down
4 changes: 3 additions & 1 deletion config/environment.rb
Expand Up @@ -44,4 +44,6 @@
# config.i18n.default_locale = :de

config.action_controller.relative_url_root = "/bonsai"
end
end

Workling::Remote.dispatcher = Workling::Remote::Runners::StarlingRunner.new
16 changes: 16 additions & 0 deletions config/workling.yml
@@ -0,0 +1,16 @@
# By default, NotRemoteRunner is used when RAILS_ENV == 'test'.
#
# You can pass options to memcached client by nesting the key value pairs
# under 'memcache_options'.
#
# You can also use a cluster of Starlings. Simply give a comma separated
# list of server:port, server:port, server:port values to listens_on.
#
production:
listens_on: localhost:15151

development:
listens_on: localhost:22122

test:
listens_on: localhost:12345
47 changes: 0 additions & 47 deletions script/backgroundrb

This file was deleted.

11 changes: 11 additions & 0 deletions script/bj_invoker.rb
@@ -0,0 +1,11 @@
@routing = Workling::Routing::ClassAndMethodRouting.new
unnormalized = REXML::Text::unnormalize(STDIN.read)
message, command, args = *unnormalized.match(/(^[^ ]*) (.*)/)
options = Hash.from_xml(args)["hash"]

if workling = @routing[command]
options = options.symbolize_keys
method_name = @routing.method_name(command)

workling.dispatch_to_worker_method(method_name, options)
end
37 changes: 37 additions & 0 deletions script/starling_status.rb
@@ -0,0 +1,37 @@
require 'pp'

puts '=> Loading Rails...'

require File.dirname(__FILE__) + '/../config/environment'
require File.dirname(__FILE__) + '/../vendor/plugins/workling/lib/workling/remote/invokers/basic_poller'
require File.dirname(__FILE__) + '/../vendor/plugins/workling/lib/workling/routing/class_and_method_routing'

puts '** Rails loaded.'

trap(:INT) { exit }

client = Workling::Clients::MemcacheQueueClient.new

begin
client.connect
client.reset

client.stats # do this so that connection is shown as established below.

puts "Queue state:"
pp client.inspect
pp "Active?: #{client.active?}"
pp "Read Only?: #{client.readonly?}"
puts ""
puts "Servers:"
pp client.servers
puts ""
puts "Queue stats:"
pp client.stats

puts "\nThread Stats:"
pp Thread.list
ensure
puts '** Exiting'
client.close
end
17 changes: 17 additions & 0 deletions script/workling_client
@@ -0,0 +1,17 @@
#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'

workling = File.join(File.dirname(__FILE__), '..', 'vendor', 'plugins', 'workling', 'script', 'listen.rb')
options = {
:app_name => "workling",
:ARGV => ARGV,
:dir_mode => :normal,
:dir => File.join(File.dirname(__FILE__), '..', 'log'),
:log_output => true,
:multiple => false,
:backtrace => true,
:monitor => true
}

Daemons.run(workling, options)
7 changes: 7 additions & 0 deletions script/workling_starling_client
@@ -0,0 +1,7 @@
#!/usr/bin/env ruby

puts "\n>>>>>"
puts ">>>>> This script has been DEPRACATED. Please use script/workling_client instead!"
puts ">>>>>\n\n"

load File.dirname(__FILE__) + '/workling_client'
99 changes: 0 additions & 99 deletions test/bdrb_test_helper.rb

This file was deleted.

17 changes: 0 additions & 17 deletions vendor/plugins/backgroundrb/.autotest

This file was deleted.

0 comments on commit d33890a

Please sign in to comment.