Since c3e39d2b6d5f6895389bd9acb38c4dfa6b243890 in core, RedisCategorySync does not work because the category updates (onCategoryAfterPageAdded/onCategoryAfterPageRemoved) (can) run *after* onLinksUpdateComplete. The change was to improve performance by moving updateCategoryCounts to the end of the transaction.
I see two options:
- No longer batch the adds and removes. This may not be okay if Redis is fast enough.
- Find another hook for batching that is guaranteed to be late enough. There isn't an obvious good choice here, but I looked briefly.