From cba2c437e582dd5880ec45cc4ff2fccda2315ad5 Mon Sep 17 00:00:00 2001
From: Robert Speicher <rspeicher@gmail.com>
Date: Mon, 11 Apr 2016 15:38:36 -0400
Subject: [PATCH] Move RepositoryArchiveCacheWorker to sidekiq-cron

Closes #15105
---
 app/controllers/projects/repositories_controller.rb | 1 -
 config/gitlab.yml.example                           | 3 +++
 config/initializers/1_settings.rb                   | 3 +++
 lib/api/repositories.rb                             | 1 -
 4 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
index 5c7614cfbaf..bb7a6b6a5ab 100644
--- a/app/controllers/projects/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -11,7 +11,6 @@ class Projects::RepositoriesController < Projects::ApplicationController
   end
 
   def archive
-    RepositoryArchiveCacheWorker.perform_async
     headers.store(*Gitlab::Workhorse.send_git_archive(@project, params[:ref], params[:format]))
     head :ok
   rescue => ex
diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example
index 35c7c425a5a..1a512a2227f 100644
--- a/config/gitlab.yml.example
+++ b/config/gitlab.yml.example
@@ -156,6 +156,9 @@ production: &base
     stuck_ci_builds_worker:
       cron: "0 0 * * *"
 
+    # Remove outdated repository archives
+    repository_archive_cache_worker:
+      cron: "0 * * * *"
 
   #
   # 2. GitLab CI settings
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 72c4d8d61ce..ca74349e85d 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -239,6 +239,9 @@ Settings['cron_jobs'] ||= Settingslogic.new({})
 Settings.cron_jobs['stuck_ci_builds_worker'] ||= Settingslogic.new({})
 Settings.cron_jobs['stuck_ci_builds_worker']['cron'] ||= '0 0 * * *'
 Settings.cron_jobs['stuck_ci_builds_worker']['job_class'] = 'StuckCiBuildsWorker'
+Settings.cron_jobs['repository_archive_cache_worker'] ||= Settingslogic.new({})
+Settings.cron_jobs['repository_archive_cache_worker']['cron'] ||= '0 * * * *'
+Settings.cron_jobs['repository_archive_cache_worker']['job_class'] = 'RepositoryArchiveCacheWorker'
 
 
 #
diff --git a/lib/api/repositories.rb b/lib/api/repositories.rb
index 0d0f0d4616d..62161aadb9a 100644
--- a/lib/api/repositories.rb
+++ b/lib/api/repositories.rb
@@ -98,7 +98,6 @@ module API
         authorize! :download_code, user_project
 
         begin
-          RepositoryArchiveCacheWorker.perform_async
           header *Gitlab::Workhorse.send_git_archive(user_project, params[:sha], params[:format])
         rescue
           not_found!('File')
-- 
GitLab