Updates project to process web hooks async via sidekiq.
A new queue of "project_web_hook" is used to process web hooks asynchronously, allowing each to succeed/fail (and be retried) independently. (Basically, project web hooks now process the same as system hooks.)
This commit is contained in:
parent
639b0a8715
commit
8a65229b35
5 changed files with 16 additions and 3 deletions
|
@ -340,7 +340,7 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def execute_hooks(data)
|
||||
hooks.each { |hook| hook.execute(data) }
|
||||
hooks.each { |hook| hook.async_execute(data) }
|
||||
end
|
||||
|
||||
def execute_services(data)
|
||||
|
|
|
@ -34,4 +34,8 @@ class WebHook < ActiveRecord::Base
|
|||
basic_auth: {username: parsed_url.user, password: parsed_url.password})
|
||||
end
|
||||
end
|
||||
|
||||
def async_execute(data)
|
||||
Sidekiq::Client.enqueue(ProjectWebHookWorker, id, data)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue