diff --git a/Procfile b/Procfile index 347e81f3..0d2df168 100644 --- a/Procfile +++ b/Procfile @@ -1,3 +1,4 @@ web: bundle exec ./script/server console: bundle exec ./script/console sidekiq: bundle exec sidekiq -c 5 -r ./lib/travis/sidekiq.rb -q build_cancellations +sidekiq: bundle exec sidekiq -c 5 -r ./lib/travis/sidekiq.rb -q build_restart diff --git a/lib/travis/api/app/endpoint/builds.rb b/lib/travis/api/app/endpoint/builds.rb index ea4bb6b7..f6a983e1 100644 --- a/lib/travis/api/app/endpoint/builds.rb +++ b/lib/travis/api/app/endpoint/builds.rb @@ -1,5 +1,6 @@ require 'travis/api/app' require 'travis/api/workers/build_cancellation' +require 'travis/api/workers/build_restart' class Travis::Api::App class Endpoint @@ -49,7 +50,9 @@ class Travis::Api::App post '/:id/restart' do Metriks.meter("api.request.restart_build").mark - respond_with service(:reset_model, build_id: params[:id]) + + Travis::Sidekiq::BuildRestart.perform_async(id: params[:id], user_id: current_user.id) + #respond_with service(:reset_model, build_id: params[:id]) end end end diff --git a/lib/travis/api/workers/build_cancellation.rb b/lib/travis/api/workers/build_cancellation.rb index 0fd5ad7c..bf1eca76 100644 --- a/lib/travis/api/workers/build_cancellation.rb +++ b/lib/travis/api/workers/build_cancellation.rb @@ -10,11 +10,7 @@ module Travis sidekiq_options queue: :build_cancellations def perform(data) - p "#######################" - p data user = User.find(data['user_id']) - test = { id: data['id'], source: data['source'] } - p test Travis.service(:cancel_build, user, { id: data['id'], source: data['source'] }).run end diff --git a/lib/travis/api/workers/build_restart.rb b/lib/travis/api/workers/build_restart.rb new file mode 100644 index 00000000..a4fda5dc --- /dev/null +++ b/lib/travis/api/workers/build_restart.rb @@ -0,0 +1,19 @@ +require 'sidekiq/worker' +require 'multi_json' + +module Travis + module Sidekiq + class BuildRestart + class ProcessingError < StandardError; end + + include ::Sidekiq::Worker + sidekiq_options queue: :build_restart + + def perform(data) + user = User.find(data['user_id']) + Travis.service(:reset_model, user, build_id: data['id']).run + end + + end + end +end diff --git a/lib/travis/sidekiq.rb b/lib/travis/sidekiq.rb index c847d523..68cf3ead 100644 --- a/lib/travis/sidekiq.rb +++ b/lib/travis/sidekiq.rb @@ -2,6 +2,7 @@ $: << './lib' require 'sidekiq' require 'travis' require 'travis/api/workers/build_cancellation' +require 'travis/api/workers/build_restart' require 'travis/support/amqp' Travis::Database.connect