queue works. needs cleanup.

This commit is contained in:
danielvincent 2010-06-17 10:29:30 -07:00
parent 67535c1113
commit d91cec0881
4 changed files with 42 additions and 18 deletions

View file

@ -3,7 +3,7 @@ source 'http://rubygems.org'
gem 'rails', '3.0.0.beta4' gem 'rails', '3.0.0.beta4'
gem 'mongrel' gem 'mongrel'
gem 'thin' gem 'thin'
gem 'em-http-request', :git => 'git@github.com:maxwell/em-http-request.git' gem 'em-http-request'
gem 'addressable' gem 'addressable'
gem "mongoid", :git => "http://github.com/durran/mongoid.git" gem "mongoid", :git => "http://github.com/durran/mongoid.git"
gem "bson_ext", "1.0.1" gem "bson_ext", "1.0.1"
@ -12,6 +12,9 @@ gem "devise", :git => "git://github.com/plataformatec/devise.git"
gem 'roxml', :git => "git://github.com/Empact/roxml.git" gem 'roxml', :git => "git://github.com/Empact/roxml.git"
gem "dm-core"
group :test do group :test do
gem 'rspec', '>= 2.0.0.beta.10' gem 'rspec', '>= 2.0.0.beta.10'
gem 'rspec-rails', ">= 2.0.0.beta.8" gem 'rspec-rails', ">= 2.0.0.beta.8"

View file

@ -1,5 +1,4 @@
class Post class Post
require 'lib/common'
require 'lib/message_handler' require 'lib/message_handler'
@ -8,8 +7,6 @@ class Post
include Mongoid::Document include Mongoid::Document
include Mongoid::Timestamps include Mongoid::Timestamps
include ROXML include ROXML
@@queue = MessageHandler.new
include Diaspora::Hookey
xml_accessor :owner xml_accessor :owner
xml_accessor :snippet xml_accessor :snippet
@ -21,7 +18,31 @@ class Post
before_create :set_defaults before_create :set_defaults
#after_update :notify_friends #after_update :notify_friends
after_save :notify_friends
@@queue = MessageHandler.new
def notify_friends
puts "hello"
xml = prep_webhook
#friends_with_permissions.each{ |friend| puts friend; Curl.post( "\"" + xml + "\" " + friend) }
@@queue.add_post_request( friends_with_permissions, xml )
@@queue.process
end
def prep_webhook
self.to_xml.to_s.chomp
end
def friends_with_permissions
#friends = Friend.only(:url).map{|x| x = x.url + "/receive/"}
#3.times {friends = friends + friends}
#friends
googles = []
100.times{ googles <<"http://google.com/"} #"http://localhost:4567/receive/"} #"http://google.com/"}
googles
end
@@models = ["StatusMessage", "Bookmark", "Blog"] @@models = ["StatusMessage", "Bookmark", "Blog"]
@ -46,10 +67,5 @@ class Post
end end
#def notify_friends
#friends = Permissions.get_list_for(self)
#xml = self.to_xml_to_s
#friends.each{|friend| ping friend :with => xml }
#end
end end

View file

@ -22,12 +22,12 @@ module Diaspora
def self.included(klass) def self.included(klass)
klass.class_eval do klass.class_eval do
#include EventQueue::MessageHandler include EventQueue::MessageHandler
before_save :notify_friends before_save :notify_friends
def notify_friends def notify_friends
puts "hello"
@@queue = MessageHandler.new
xml = prep_webhook xml = prep_webhook
#friends_with_permissions.each{ |friend| puts friend; Curl.post( "\"" + xml + "\" " + friend) } #friends_with_permissions.each{ |friend| puts friend; Curl.post( "\"" + xml + "\" " + friend) }
@@queue.add_post_request( friends_with_permissions, xml ) @@queue.add_post_request( friends_with_permissions, xml )
@ -40,8 +40,8 @@ module Diaspora
def friends_with_permissions def friends_with_permissions
#Friend.only(:url).map{|x| x = x.url + "/receive/"} #Friend.only(:url).map{|x| x = x.url + "/receive/"}
googles = [] #googles = []
5.times{ googles <<"http://google.com/"} #"http://localhost:4567/receive/"} #"http://google.com/"} #5.times{ googles <<"http://google.com/"} #"http://localhost:4567/receive/"} #"http://google.com/"}
googles googles
end end
end end

View file

@ -1,7 +1,12 @@
require 'em-http' require 'active_support'
require 'eventmachine' require 'active_support/core_ext'
require 'addressable/uri' require 'roxml'
require 'dm-core'
require 'eventmachine'
require 'em-http'
class MessageHandler class MessageHandler
NUM_TRIES = 3 NUM_TRIES = 3
@ -25,7 +30,7 @@
case query.type case query.type
when :post when :post
http = EventMachine::HttpRequest.new(query.destination).post :timeout => TIMEOUT, :body => query.body http = EventMachine::HttpRequest.new(query.destination).post :timeout => TIMEOUT, :body => query.body
http.callback { process} http.callback {puts "YAR"; process}
when :get when :get
http = EventMachine::HttpRequest.new(query.destination).get :timeout => TIMEOUT http = EventMachine::HttpRequest.new(query.destination).get :timeout => TIMEOUT
http.callback {send_to_seed(query, http.response); process} http.callback {send_to_seed(query, http.response); process}