aj1215
4/4/2011 - 10:42 PM

Integrating MongoDB/Mongoid with SimpleWorker

Integrating MongoDB/Mongoid with SimpleWorker

filename = File.join(File.dirname(__FILE__), "..", "mongoid.yml")
DATABASE = YAML.load(ERB.new(File.new(filename).read).result)

SimpleWorker.configure do |config|
    config.access_key = ''
    config.secret_key = ''
    config.global_attributes[:mongodb_settings] = DATABASE[Rails.env]
end
require 'simple_worker'
require 'mongoid'

class ExampleWorker < SimpleWorker::Base
  
  #Not sure if this is necessary (according to the docs), but
  #it stopped complaining when I did it. 
  merge File.join(File.dirname("__FILE__"), "..", "models", "user.rb")
  attr_accessor :user_id, :mongodb_settings

  def run
    init_mongodb
   
    #create a user object (in this space) via lookup.
    user = User.find(user_id)
      
    #Do something cool with the user

    user.save
    log "Saved user."
  end

  private

  def init_mongodb
    Mongoid.configure do |config|
      config.from_hash(@mongodb_settings)
    end
  end

end