@@ -138,13 +138,18 @@ upstream and GitLab will no longer automatically update this branch to prevent a
...
@@ -138,13 +138,18 @@ upstream and GitLab will no longer automatically update this branch to prevent a
### How it works
### How it works
Once you activate the pull mirroring feature, the mirror will be inserted into a queue. A scheduler
Once the pull mirroring feature has been enabled for a repository, the repository is added to a queue.
will start every minute and schedule a fixed number of mirrors for update, based on the configured maximum capacity.
If the mirror updates successfully, it will be enqueued once again with a small backoff period.
Once per minute, a Sidekiq cron job schedules repository mirrors to update, based on:
If the mirror fails (for example, a branch diverged from upstream), the project's backoff period is
- The capacity available. This is determined by Sidekiq settings. For GitLab.com, see [GitLab.com Sidekiq settings](../user/gitlab_com/index.md#sidekiq).
increased each time it fails, up to a maximum amount of time.
- The number of repository mirrors already in the queue that are due to be updated. Being due depends on when the repository mirror was last updated and how many times it's been retried.
Repository mirrors are updated as Sidekiq becomes available to process them. If the process of updating the repository mirror:
- Succeeds, an update will be enqueued again with at least a 30 minute wait.
- Fails (for example, a branch diverged from upstream), it will be attempted again later. Mirrors can fail
up to 14 times before they will not be enqueued for update again.