Draft: Add indexing pausing queue
What does this MR do and why?
This is broken into two parts:
- Add pausing service: !116040 (closed)
- Handle paused items in indexing queue
👈 (this MR)
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
How to set up and validate locally
- Pause indexing for the
NoteIndex
Search::IndexingPausingService.new.pause!(index_type: Search::NoteIndex)
- Add an item to processing queue
Elastic::ProcessBookkeepingService.track!(Note.first)
- Check queued items for indexing
pry(main)> Elastic::ProcessBookkeepingService.queued_items => {1=>[["Note 1 note_1 project_1", 22.0]]}
- Check paused queued items
pry(main)> Search::PausedBookkeepingService.queued_items => {}
- Execute process bookkeeping. It will move paused items to paused queue
Elastic::ProcessBookkeepingService.new.execute
- Check queued items for indexing
pry(main)> Elastic::ProcessBookkeepingService.queued_items => {}
- Check paused queued items
pry(main)> Search::PausedBookkeepingService.queued_items => {1=>[["Note 1 note_1 project_1", 1.0]]}
- Unpause pause queue
Search::PausedBookkeepingService.unpause!
- Check paused queued items
pry(main)> Search::PausedBookkeepingService.queued_items => {}
- Check queued items for indexing
pry(main)> Elastic::ProcessBookkeepingService.queued_items => {1=>[["Note 1 note_1 project_1", 22.0]]}
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by John Mason