diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/services/ci/pipeline_schedule_service.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/services/ci/pipeline_schedule_service.rb b/app/services/ci/pipeline_schedule_service.rb index 5b5e9a26520..ef90d91c936 100644 --- a/app/services/ci/pipeline_schedule_service.rb +++ b/app/services/ci/pipeline_schedule_service.rb @@ -7,7 +7,18 @@ module Ci # Otherwise, multiple pipelines could be created in a short interval. schedule.schedule_next_run! - RunPipelineScheduleWorker.perform_async(schedule.id, schedule.owner&.id) + if Feature.enabled?(:ci_pipeline_schedule_async) + RunPipelineScheduleWorker.perform_async(schedule.id, schedule.owner&.id) + else + begin + RunPipelineScheduleWorker.new.perform(schedule.id, schedule.owner&.id) + ensure + ## + # This is the temporary solution for avoiding the memory bloat. + # See more https://gitlab.com/gitlab-org/gitlab-ce/issues/61955 + GC.start if Feature.enabled?(:ci_pipeline_schedule_force_gc, default_enabled: true) + end + end end end end |