Split message index rebuild off of TranslationsUpdateJob and enable deduplication
This patch aims to finally solve task T221119. The front caching already fully
mitigated the issue of translators not being able to translate. The remaining
issue is lock wait timeout exceptions that cause logspam and can leave some
This patch solves that by splitting message index rebuild off of
TranslationsUpdateJob. This requires that nothing in that job must require
the message index to be up to date. To my knowledge this is the case currently.
This allows the message index rebuild to fail safely.
MessagesIndexRebuildJob is improved by enabling automatic retries as well as
deduplication. Deduplication should help to avoid some redundant work in case
a lot of pages are marked for translation in a short period of time. This
assumes that when the MessageIndexRebuildJob starts executing, it gets the
latest message group state. Added local cache clearing to ensure that. Callers
are responsible for updating the global cache first.