diff --git a/app/models/commit_status.rb b/app/models/commit_status.rb
index 966a2449d2c159ce4439b8b6356f88545067d071..09aec6b40d091a48f6b4d3c84239bcf271307d49 100644
--- a/app/models/commit_status.rb
+++ b/app/models/commit_status.rb
@@ -78,10 +78,14 @@ class CommitStatus < ActiveRecord::Base
     end
 
     after_transition do |commit_status, transition|
-      if commit_status.pipeline && !transition.loopback?
-        ProcessPipelineWorker.perform_async(
-          commit_status.pipeline.id, process: commit_status.complete?
-        )
+      return if transition.loopback?
+
+      commit_status.pipeline.try(:id).try do |pipeline_id|
+        if commit_status.complete?
+          ProcessPipelineWorker.perform_async(pipeline_id)
+        end
+
+        UpdatePipelineWorker.perform_async(pipeline_id)
       end
 
       true
diff --git a/app/workers/process_pipeline_worker.rb b/app/workers/process_pipeline_worker.rb
index fa1251b8e9fa250fff402d9bcf074ae5ccf6d953..9aad8cf818f81da84d2ad0f4d707c9dbcf73b7d0 100644
--- a/app/workers/process_pipeline_worker.rb
+++ b/app/workers/process_pipeline_worker.rb
@@ -3,15 +3,10 @@ class ProcessPipelineWorker
 
   sidekiq_options queue: :default
 
-  def perform(pipeline_id, params)
-    begin
-      pipeline = Ci::Pipeline.find(pipeline_id)
-    rescue ActiveRecord::RecordNotFound
-      return
-    end
+  def perform(pipeline_id)
+    pipeline = Ci::Pipeline.find_by(id: pipeline_id)
+    return unless pipeline
 
-    pipeline.process! if params['process']
-
-    pipeline.update_status
+    pipeline.process!
   end
 end
diff --git a/app/workers/update_pipeline_worker.rb b/app/workers/update_pipeline_worker.rb
new file mode 100644
index 0000000000000000000000000000000000000000..31d29d0ab1c10440b416e7b2ec9d10987b3e0569
--- /dev/null
+++ b/app/workers/update_pipeline_worker.rb
@@ -0,0 +1,12 @@
+class UpdatePipelineWorker
+  include Sidekiq::Worker
+
+  sidekiq_options queue: :default
+
+  def perform(pipeline_id)
+    pipeline = Ci::Pipeline.find_by(id: pipeline_id)
+    return unless pipeline
+
+    pipeline.update_status
+  end
+end