diff --git a/config/initializers/resque.rb b/config/initializers/resque.rb index 48336f818..22be0cec2 100644 --- a/config/initializers/resque.rb +++ b/config/initializers/resque.rb @@ -5,10 +5,16 @@ require 'resque' begin if Diaspora::Application.config.work_in_process + if Rails.env == 'production' + puts "WARNING: You are running Diaspora in production without Resque workers turned on. Please don't do this." + end + module Resque def enqueue(klass, *args) klass.send(:perform, *args) end end end +rescue + nil end diff --git a/lib/diaspora/web_socket.rb b/lib/diaspora/web_socket.rb index f27527ca8..9df317df2 100644 --- a/lib/diaspora/web_socket.rb +++ b/lib/diaspora/web_socket.rb @@ -60,11 +60,19 @@ module Diaspora module Socketable def socket_to_user(user_or_id, opts={}) - SocketsController.new.outgoing(user_or_id, self, opts) + begin + SocketsController.new.outgoing(user_or_id, self, opts) + rescue + nil + end end def unsocket_from_user(user_or_id, opts={}) - SocketsController.new.outgoing(user_or_id, Retraction.for(self), opts) + begin + SocketsController.new.outgoing(user_or_id, Retraction.for(self), opts) + rescue + nil + end end end end diff --git a/spec/lib/diaspora/web_socket_spec.rb b/spec/lib/diaspora/web_socket_spec.rb index 551b874d0..37fda4e68 100644 --- a/spec/lib/diaspora/web_socket_spec.rb +++ b/spec/lib/diaspora/web_socket_spec.rb @@ -63,4 +63,11 @@ describe Diaspora::Socketable do Diaspora::WebSocket.should_receive(:queue_to_user) @post.socket_to_user(@user, :aspect_ids => @aspect.id) end + + it 'no-ops if redis isnt present' do + Diaspora::WebSocket.stub(:redis).and_return(nil) + lambda { + @post.socket_to_user(@user, :aspect_ids => @aspect.id) + }.should_not raise_error + end end