diff options
| author | Shinya Maeda <shinya@gitlab.com> | 2018-05-21 22:10:26 +0900 |
|---|---|---|
| committer | Shinya Maeda <shinya@gitlab.com> | 2018-06-06 17:49:48 +0900 |
| commit | 33019beaf1ee47da66276ccc552ab442aee4fdd2 (patch) | |
| tree | 08ebeefa31d07173696db0aeb8ba00223cd76e1a | |
| parent | 25810d03e2e6ff4039f4d45112fe7f23f0679b57 (diff) | |
| download | gitlab-ce-33019beaf1ee47da66276ccc552ab442aee4fdd2.tar.gz | |
Simplify RescueStaleLiveTraceWorker
| -rw-r--r-- | app/workers/rescue_stale_live_trace_worker.rb | 25 | ||||
| -rw-r--r-- | config/initializers/1_settings.rb | 4 |
2 files changed, 6 insertions, 23 deletions
diff --git a/app/workers/rescue_stale_live_trace_worker.rb b/app/workers/rescue_stale_live_trace_worker.rb index ba0b7c9a90a..b5df960babb 100644 --- a/app/workers/rescue_stale_live_trace_worker.rb +++ b/app/workers/rescue_stale_live_trace_worker.rb @@ -6,34 +6,17 @@ class RescueStaleLiveTraceWorker # Reschedule to archive live traces # # The target jobs are with the following conditions - # - Finished 4 hours ago, but it's not archived yet - # Jobs finished 4 hours ago should have an archived trace. Probably ArchiveTraceWorker failed by Sidekiq's inconsistancy + # - Finished 1 day ago, but it has not had an acthived trace yet + # Jobs finished 1 day ago should have an archived trace. Probably ArchiveTraceWorker failed by Sidekiq's inconsistancy Ci::Build.finished - .where('finished_at BETWEEN ? AND ?', 1.week.ago, 4.hours.ago) + .where('finished_at BETWEEN ? AND ?', 1.week.ago, 1.day.ago) .where('NOT EXISTS (?)', Ci::JobArtifact.select(1).trace.where('ci_builds.id = ci_job_artifacts.job_id')) - .find_in_batch(batch_size: 1000) do |jobs| + .find_in_batch(batch_size: 100) do |jobs| job_ids = jobs.map { |job| [job.id] } ArchiveTraceWorker.bulk_perform_async(job_ids) Rails.logger.warning "Scheduled to archive stale live traces from #{job_ids.min} to #{job_ids.max}" end - - # Schedule to flush redis-chunk to database - # - # The target build_trace_chunks are with the following conditions - # - The last patching of the trace was 1 hour ago - # - The job is still running - Ci::BuildTraceChunk.redis - .joins(:build) - .where('ci_builds.update_at < ?', 1.hour.ago) - .where('ci_builds.status = ?', 'running') - .find_in_batch(batch_size: 1000) do |build_trace_chunks| - build_trace_chunk_ids = build_trace_chunks.map { |build_trace_chunk| [build_trace_chunk.id] } - - BuildTraceChunkFlushToDBWorker.bulk_perform_async(build_trace_chunk_ids) - - Rails.logger.warning "Scheduled to flush stale live traces to database from #{build_trace_chunk_ids.min} to #{build_trace_chunk_ids.max}" - end end end diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb index 3c1e67f59f1..057d1457b57 100644 --- a/config/initializers/1_settings.rb +++ b/config/initializers/1_settings.rb @@ -290,8 +290,8 @@ Settings.cron_jobs['import_export_project_cleanup_worker'] ||= Settingslogic.new Settings.cron_jobs['import_export_project_cleanup_worker']['cron'] ||= '0 * * * *' Settings.cron_jobs['import_export_project_cleanup_worker']['job_class'] = 'ImportExportProjectCleanupWorker' Settings.cron_jobs['rescue_stale_live_trace_worker'] ||= Settingslogic.new({}) -Settings.cron_jobs['rescue_stale_live_trace_worker']['cron'] ||= '*/1 * * * *' -Settings.cron_jobs['rescue_stale_live_trace_worker']['job_class'] = 'BuildTraceChunkArchiveStaleObjectsWorker' +Settings.cron_jobs['rescue_stale_live_trace_worker']['cron'] ||= '*/12 * * * *' +Settings.cron_jobs['rescue_stale_live_trace_worker']['job_class'] = 'RescueStaleLiveTraceWorker' Settings.cron_jobs['requests_profiles_worker'] ||= Settingslogic.new({}) Settings.cron_jobs['requests_profiles_worker']['cron'] ||= '0 0 * * *' Settings.cron_jobs['requests_profiles_worker']['job_class'] = 'RequestsProfilesWorker' |
