Acq+Vandelay : more aggressive streamed response throttling
authorBill Erickson <berick@esilibrary.com>
Tue, 21 Feb 2012 15:56:38 +0000 (10:56 -0500)
committerBill Erickson <berick@esilibrary.com>
Tue, 21 Feb 2012 15:56:38 +0000 (10:56 -0500)
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>
Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm

index 7d53286..1ebed75 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) = @_;