LP#1949910: serialize deleting items from item bucket
authorGalen Charlton <gmc@equinoxOLI.org>
Thu, 11 Nov 2021 16:21:11 +0000 (11:21 -0500)
committerJane Sandberg <sandbergja@gmail.com>
Wed, 24 Nov 2021 19:54:16 +0000 (11:54 -0800)
commit8a568b09f9af275127ef0b9e459e5ddb31c638e8
tree1c0dffe40987bb9eaa1cebb7d33bd36108be7555
parentf7026b9dc9f4117c06fcbce5f22c0a784def1ed1
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>
Signed-off-by: Jane Sandberg <sandbergja@gmail.com>
Open-ILS/web/js/ui/default/staff/cat/bucket/copy/app.js