## Usage from inside Rails
FacebookPublisher.queue :deliver_email_winner, arguments, here

## Facebook Publisher Rails model
class FacebookPublisher < Facebooker::Rails::Publisher
include ApplicationHelper

def self.queue action, args
STARLING.set "facebook_actions", { :action => action, :args => args }
end

# ...
end

## Facebook Daemon

#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'
require File.dirname(__FILE__) + "/../config/environment"

class FacebookDaemon

def self.update
loop do
begin
result = STARLING.get("facebook_actions")
return unless result
puts "got #{ result }"
action, args = result[:action], result[:args]
puts "running FacebookPublisher.#{action} with #{ args.inspect}"
FacebookPublisher.send action, *args
rescue Exception => e
puts e
end
end
end
end


ActiveRecord::Base.logger = Logger.new STDOUT

Daemons.run_proc("facebook_daemon") do
loop do
FacebookDaemon.update
sleep 1
end
end