Acq+Vandelay : more aggressive streamed response throttling
authorBill Erickson <berick@esilibrary.com>
Tue, 21 Feb 2012 15:56:38 +0000 (10:56 -0500)
committerThomas Berezansky <tsbere@mvlc.org>
Thu, 15 Mar 2012 19:23:54 +0000 (15:23 -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 3fc3ef1..8baf9ea 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) = @_;