Merge pull request #2768 from rlaneve/feature/queued-web-hooks
Updates web hooks to process via queue
This commit is contained in:
commit
552e42f634
2
Procfile
2
Procfile
|
@ -1,2 +1,2 @@
|
||||||
web: bundle exec unicorn_rails -p $PORT
|
web: bundle exec unicorn_rails -p $PORT
|
||||||
worker: bundle exec sidekiq -q post_receive,mailer,system_hook,common,default
|
worker: bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,common,default
|
||||||
|
|
|
@ -340,7 +340,7 @@ class Project < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute_hooks(data)
|
def execute_hooks(data)
|
||||||
hooks.each { |hook| hook.execute(data) }
|
hooks.each { |hook| hook.async_execute(data) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute_services(data)
|
def execute_services(data)
|
||||||
|
|
|
@ -34,4 +34,8 @@ class WebHook < ActiveRecord::Base
|
||||||
basic_auth: {username: parsed_url.user, password: parsed_url.password})
|
basic_auth: {username: parsed_url.user, password: parsed_url.password})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def async_execute(data)
|
||||||
|
Sidekiq::Client.enqueue(ProjectWebHookWorker, id, data)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
9
app/workers/project_web_hook_worker.rb
Normal file
9
app/workers/project_web_hook_worker.rb
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
class ProjectWebHookWorker
|
||||||
|
include Sidekiq::Worker
|
||||||
|
|
||||||
|
sidekiq_options queue: :project_web_hook
|
||||||
|
|
||||||
|
def perform(hook_id, data)
|
||||||
|
WebHook.find(hook_id).execute data
|
||||||
|
end
|
||||||
|
end
|
|
@ -6,7 +6,7 @@ namespace :sidekiq do
|
||||||
|
|
||||||
desc "GITLAB | Start sidekiq"
|
desc "GITLAB | Start sidekiq"
|
||||||
task :start do
|
task :start do
|
||||||
run "nohup bundle exec sidekiq -q post_receive,mailer,system_hook,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1 &"
|
run "nohup bundle exec sidekiq -q post_receive,mailer,system_hook,project_web_hook,common,default -e #{Rails.env} -P #{pidfile} >> #{Rails.root.join("log", "sidekiq.log")} 2>&1 &"
|
||||||
end
|
end
|
||||||
|
|
||||||
def pidfile
|
def pidfile
|
||||||
|
|
Loading…
Reference in a new issue