Acq+Vandelay : more aggressive streamed response throttling
authorBill Erickson <berick@esilibrary.com>
Tue, 21 Feb 2012 15:56:38 +0000 (10:56 -0500)
committerBen Shum <bshum@biblio.org>
Tue, 13 Mar 2012 19:28:38 +0000 (15:28 -0400)
With the addition of Vandelay processing, the server now wants to
respond with status information a lot more often when uploading /
process ACQ records.  This patch applies the level of throttling to ACQ
processing as Vandelay uses natively, which starts verbose and quickly
cuts back on chatter as processing continues up to (currently) a
throttle window of 1 delivered response per 256 responses.  Apart from
saving bandwith, this helps alleviate a known problem in the staff
client where long-running, dense streams of multipart responses
eventually stop bubbling up from the browser to the application.
Making the responses more sparse seems to help this a lot.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm

index 9b4b71f..8a754f0 100644 (file)
@@ -23,7 +23,7 @@ sub new {
         total => 0
     };
     $self->{cache} = {};
-    $self->throttle(5) unless $self->throttle;
+    $self->throttle(4) unless $self->throttle;
     $self->{post_proc_queue} = [];
     $self->{last_respond_progress} = 0;
     return $self;
@@ -48,6 +48,7 @@ sub respond {
     }
     $self->conn->respond({ %{$self->{args}}, %other_args });
     $self->{last_respond_progress} = $self->{args}->{progress};
+    $self->throttle($self->throttle * 2) unless $self->throttle >= 256;
 }
 sub respond_complete {
     my($self, %other_args) = @_;