LP#1949910: serialize deleting items from item bucket user/jeffdavis/lp1949910-serialize-delete-from-item-bucket-signoff
authorGalen Charlton <gmc@equinoxOLI.org>
Thu, 11 Nov 2021 16:21:11 +0000 (11:21 -0500)
committerJeff Davis <jdavis@sitka.bclibraries.ca>
Wed, 17 Nov 2021 17:54:19 +0000 (09:54 -0800)
commit54aa812dbc497ace932cd1339e218d75b5087bef
tree8a289f20bec80909b28768943ba964e7d1b3469b
parent66f457a9c30298bb8935a9dfdbef14a4df8fbb9e
LP#1949910: serialize deleting items from item bucket

This patch serializes the fetching and fleshing of items to delete
when the delete-from-item-bucket action is invoked, thereby
avoiding possible drone starvation from open-ils.search. It
also throws up the progress dialog for good measure while
the deletion occurs.

To test
-------
[1] Set up an item bucket with 25-50 items.
[2] From the item bucket intervace, invoke the action to delete
    all of the items.
[3] Note that the open-ils.search.asset.copy.fleshed2.retrieve calls,
    one for each item, are all made simultaneously. Assuming stock
    max_children settings, this will cause open-ils.search to log
    that some requests are hitting the backlog.
[4] Apply the patch and refresh the item bucket page, then repeat
    step 2 (it doesn't matter for this purpose that the items have
    already been deleted). This time, the open-ils.search API calls
    are made serially and a progress bar is displayed while the
    deletion takes place. Verify that no requests hit the backlog.

Signed-off-by: Galen Charlton <gmc@equinoxOLI.org>
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca>
Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js