diff options
Diffstat (limited to 'app/workers/loose_foreign_keys/cleanup_worker.rb')
-rw-r--r-- | app/workers/loose_foreign_keys/cleanup_worker.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/workers/loose_foreign_keys/cleanup_worker.rb b/app/workers/loose_foreign_keys/cleanup_worker.rb index 0a3a834578a..9a0909598bb 100644 --- a/app/workers/loose_foreign_keys/cleanup_worker.rb +++ b/app/workers/loose_foreign_keys/cleanup_worker.rb @@ -12,7 +12,11 @@ module LooseForeignKeys idempotent! def perform - in_lock(self.class.name.underscore, ttl: ModificationTracker::MAX_RUNTIME, retries: 0) do + # Add small buffer on MAX_RUNTIME to account for single long running + # query or extra worker time after the cleanup. + lock_ttl = ModificationTracker::MAX_RUNTIME + 20.seconds + + in_lock(self.class.name.underscore, ttl: lock_ttl, retries: 0) do stats = {} connection_name, base_model = current_connection_name_and_base_model |