diff --git a/lib/postzord/dispatch.rb b/lib/postzord/dispatch.rb index 11d72580d..3950f6106 100644 --- a/lib/postzord/dispatch.rb +++ b/lib/postzord/dispatch.rb @@ -44,10 +44,10 @@ class Postzord::Dispatch end def deliver_to_local(people) - people.each do |person| - Rails.logger.info("event=push_to_local_person route=local sender=#{@sender_person.diaspora_handle} recipient=#{person.diaspora_handle} payload_type=#{@object.class}") - Resque.enqueue(Job::Receive, person.owner_id, @xml, @sender_person.id) - end + return if people.blank? + ids = people.map{ |p| p.owner_id } + Resque.enqueue(Job::ReceiveLocalBatch, @object.id, ids) + Rails.logger.info("event=push route=local sender=#{@sender_person.diaspora_handle} recipients=#{ids.join(',')} payload_type=#{@object.class}") end def deliver_to_hub diff --git a/spec/lib/postzord/dispatch_spec.rb b/spec/lib/postzord/dispatch_spec.rb index a5d9d99a9..ab6fa0b46 100644 --- a/spec/lib/postzord/dispatch_spec.rb +++ b/spec/lib/postzord/dispatch_spec.rb @@ -234,11 +234,11 @@ describe Postzord::Dispatch do end describe '#deliver_to_local' do - it 'sends each person an object' do + it 'queues a batch receive' do local_people = [] local_people << @user.person mailman = Postzord::Dispatch.new(@user, @sm) - Resque.should_receive(:enqueue).with(Job::Receive, @user.id, @xml, anything).once + Resque.should_receive(:enqueue).with(Job::ReceiveLocalBatch, @sm.id, [@user.id]).once mailman.send(:deliver_to_local, local_people) end end