Comment 1 for bug 1596595

Revision history for this message
Bill Erickson (berick) wrote :

From the features documented in the commit:

    * Ports hold targeter code to a Perl utility function, communicating w/ the DB via cstore instead of storage.

    * Adds a new global flag 'circ.holds.retarget_interval' for configuring the hold retarget interval in the database. (Still overridable via targeter script).

    * Adds a new DB function to regenerating hold copy maps to make map deletion and creation more efficient.

    * Adds an option for targeting holds in newest to oldest order.

    * Caches all org unit settings per targeter run.

    * Adds support for "skip_viable" option. This tells the hold targeter to avoid modifying any holds that target viable copies. AKA "fix broken" mode.

      For example, you might run in skip_viable mode with a retarget interval of 24hr once a day to repair non-viable holds, then also run the targeter in regular mode once a day with a retarget interval of 48 hours to give staff 2 days to process viable holds.

    * Hold target loops logic changes:

     ** Org units with fewer target attempts are prioritized during loop processing. So, instead of segregating org units into 2 categories, those attempted in the current loop and those not attempted, sort org units by the number number of times they have been attempted. Within each grouping, prioritize by target weight/proximity as before.

     ** Target looping treats the pickup lib like any other org unit. If a targeted copy at the pickup lib remains un-captured, at re-target time, a copy at a different branch is chosen (if one is available) even if other copies at the pickup lib are targetable.