So far, ReputMessageService will do two things serially:
1. Dispatch message to consume queue.
2. Build message index
IndexService uses read/write lock to ensure thread safe, build index will acquire read lock, while clean index files will hold write lock for a long time. That means clean index files will block build index, hence will block dispatch consume queue and influence real-time of consumption.
Submits task 1 and 2 to different thread, to avoid mutual influence.
Or uses lock-free algorithm in IndexService.