Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-12 12:52:54 +0300
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-10-12 12:52:54 +0300
commit419518df675019c3e82e15e287c496a51e06f1e4 (patch)
tree020080f2f8c870dacb795d0b6939b5c03ab52e20 /app/workers
parent6f7afaa8a0b5594b88cb5a4a2fe2a822ee1334a9 (diff)
parentd3a9838065ab4cd4d1519f6d201b43c9a2b12f2c (diff)
Merge branch 'master' into feature/improve-mrwbs-and-todos-for-pipelines
* master: (221 commits) Add CHANGELOG entry for 8.12.6 Added 'Download' button to snippet view Merge branch 'api-fix-project-group-sharing' into 'security' Add 8.12.5, 8.11.9, and 8.10.12 CHANGELOG entries FIx JS bug with select2 because of missing `data-field` attribute in select box. Remove pointless `.vagrant_enabled` file allow multiple labels commands Move some CHANGELOG entries to the 8.13.0 part Move operations/ to new location Move health check docs under user/admin_area/monitoring Make guests unable to view MRs Add examples of fake tokens to be used in docs Remove duplicate CHANGELOG entry Allow browsing branches that end with '.atom' Refactor the SubGit/SVN documentation Document the new CI_DEBUG_TRACE variable Remove redundant images changed the scss for the top line connectors to be exactly centered Rearrange GitLab basics READMEs New images for GitLab basics "Create MR" docs ... Conflicts: app/models/commit_status.rb
Diffstat (limited to 'app/workers')
-rw-r--r--app/workers/clear_database_cache_worker.rb23
-rw-r--r--app/workers/expire_build_artifacts_worker.rb11
-rw-r--r--app/workers/expire_build_instance_artifacts_worker.rb11
-rw-r--r--app/workers/trending_projects_worker.rb11
4 files changed, 50 insertions, 6 deletions
diff --git a/app/workers/clear_database_cache_worker.rb b/app/workers/clear_database_cache_worker.rb
new file mode 100644
index 00000000000..c541daba50e
--- /dev/null
+++ b/app/workers/clear_database_cache_worker.rb
@@ -0,0 +1,23 @@
+# This worker clears all cache fields in the database, working in batches.
+class ClearDatabaseCacheWorker
+ include Sidekiq::Worker
+
+ BATCH_SIZE = 1000
+
+ def perform
+ CacheMarkdownField.caching_classes.each do |kls|
+ fields = kls.cached_markdown_fields.html_fields
+ clear_cache_fields = fields.each_with_object({}) do |field, memo|
+ memo[field] = nil
+ end
+
+ Rails.logger.debug("Clearing Markdown cache for #{kls}: #{fields.inspect}")
+
+ kls.unscoped.in_batches(of: BATCH_SIZE) do |relation|
+ relation.update_all(clear_cache_fields)
+ end
+ end
+
+ nil
+ end
+end
diff --git a/app/workers/expire_build_artifacts_worker.rb b/app/workers/expire_build_artifacts_worker.rb
index c64ea108d52..174eabff9fd 100644
--- a/app/workers/expire_build_artifacts_worker.rb
+++ b/app/workers/expire_build_artifacts_worker.rb
@@ -2,12 +2,11 @@ class ExpireBuildArtifactsWorker
include Sidekiq::Worker
def perform
- Rails.logger.info 'Cleaning old build artifacts'
+ Rails.logger.info 'Scheduling removal of build artifacts'
- builds = Ci::Build.with_expired_artifacts
- builds.find_each(batch_size: 50).each do |build|
- Rails.logger.debug "Removing artifacts build #{build.id}..."
- build.erase_artifacts!
- end
+ build_ids = Ci::Build.with_expired_artifacts.pluck(:id)
+ build_ids = build_ids.map { |build_id| [build_id] }
+
+ Sidekiq::Client.push_bulk('class' => ExpireBuildInstanceArtifactsWorker, 'args' => build_ids )
end
end
diff --git a/app/workers/expire_build_instance_artifacts_worker.rb b/app/workers/expire_build_instance_artifacts_worker.rb
new file mode 100644
index 00000000000..916c2e633c1
--- /dev/null
+++ b/app/workers/expire_build_instance_artifacts_worker.rb
@@ -0,0 +1,11 @@
+class ExpireBuildInstanceArtifactsWorker
+ include Sidekiq::Worker
+
+ def perform(build_id)
+ build = Ci::Build.with_expired_artifacts.reorder(nil).find_by(id: build_id)
+ return unless build
+
+ Rails.logger.info "Removing artifacts build #{build.id}..."
+ build.erase_artifacts!
+ end
+end
diff --git a/app/workers/trending_projects_worker.rb b/app/workers/trending_projects_worker.rb
new file mode 100644
index 00000000000..df4c4a6628b
--- /dev/null
+++ b/app/workers/trending_projects_worker.rb
@@ -0,0 +1,11 @@
+class TrendingProjectsWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: :trending_projects
+
+ def perform
+ Rails.logger.info('Refreshing trending projects')
+
+ TrendingProject.refresh!
+ end
+end