cambiar sidekiq por sucker_punch

This commit is contained in:
f 2019-09-16 13:44:29 -03:00
parent 2b45f4c8d1
commit 2169291c29
No known key found for this signature in database
GPG key ID: 2AE5A13E321F953D
14 changed files with 16 additions and 105 deletions

View file

@ -57,7 +57,7 @@ gem 'redis-rails'
gem 'reverse_markdown', git: 'https://0xacab.org/sutty/reverse_markdown.git'
gem 'rubyzip'
gem 'rugged'
gem 'sidekiq'
gem 'sucker_punch'
gem 'terminal-table'
gem 'validates_hostname'
gem 'webpacker'

View file

@ -107,7 +107,6 @@ GEM
commonmarker (0.20.1)
ruby-enum (~> 0.5)
concurrent-ruby (1.1.5)
connection_pool (2.2.2)
crass (1.0.4)
database_cleaner (1.7.0)
devise (4.7.1)
@ -252,8 +251,6 @@ GEM
pundit (2.1.0)
activesupport (>= 3.0.0)
rack (2.0.7)
rack-protection (2.0.7)
rack
rack-proxy (0.6.5)
rack
rack-test (1.1.0)
@ -360,11 +357,6 @@ GEM
selenium-webdriver (3.142.4)
childprocess (>= 0.5, < 3.0)
rubyzip (~> 1.2, >= 1.2.2)
sidekiq (6.0.0)
connection_pool (>= 2.2.2)
rack (>= 2.0.0)
rack-protection (>= 2.0.0)
redis (>= 4.1.0)
simpleidn (0.1.1)
unf (~> 0.1.4)
spring (2.1.0)
@ -382,6 +374,8 @@ GEM
sshkit (1.20.0)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
sucker_punch (2.1.2)
concurrent-ruby (~> 1.0)
sysexits (1.2.0)
temple (0.8.1)
terminal-table (1.8.0)
@ -471,10 +465,10 @@ DEPENDENCIES
rugged
sass-rails (~> 5.0)
selenium-webdriver
sidekiq
spring
spring-watcher-listen (~> 2.0.0)
sqlite3
sucker_punch
terminal-table
turbolinks (~> 5)
uglifier (>= 1.3.0)

View file

@ -1,3 +1,2 @@
migrate: if test -f data/production.sqlite3; then bundle exec rake db:migrate db:seed ; else bundle exec rake db:setup ; fi
sutty: bundle exec puma -d config.ru
sidekiq: bundle exec sidekiq -t 1

View file

@ -70,7 +70,7 @@ class SitesController < ApplicationController
authorize site
# XXX: Convertir en una máquina de estados?
DeployWorker.perform_async site.id if site.enqueue!
DeployJob.perform_async site.id if site.enqueue!
redirect_to sites_path
end

View file

@ -1,4 +1,6 @@
# frozen_string_literal: true
# Base para trabajos
class ApplicationJob < ActiveJob::Base
include SuckerPunch::Job
end

View file

@ -1,9 +1,7 @@
# frozen_string_literal: true
# Realiza el deploy de un sitio
class DeployWorker
include Sidekiq::Worker
class DeployJob < ApplicationJob
def perform(site)
site = Site.find(site)
site.update_attribute :status, 'building'

View file

@ -1,32 +0,0 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'sidekiq' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
Pathname.new(__FILE__).realpath)
bundle_binstub = File.expand_path('bundle', __dir__)
if File.file?(bundle_binstub)
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
load(bundle_binstub)
else
abort(
'Your `bin/bundle` was not generated by Bundler, so this binstub
cannot run. Replace `bin/bundle` by running `bundle binstubs
bundler --force`, then run this command again.'
)
end
end
require 'rubygems'
require 'bundler/setup'
load Gem.bin_path('sidekiq', 'sidekiq')

View file

@ -1,32 +0,0 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
#
# This file was generated by Bundler.
#
# The application 'sidekiqctl' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'pathname'
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
Pathname.new(__FILE__).realpath)
bundle_binstub = File.expand_path('bundle', __dir__)
if File.file?(bundle_binstub)
if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
load(bundle_binstub)
else
abort(
'Your `bin/bundle` was not generated by Bundler, so this binstub
cannot run. Replace `bin/bundle` by running `bundle binstubs
bundler --force`, then run this command again.'
)
end
end
require 'rubygems'
require 'bundler/setup'
load Gem.bin_path('sidekiq', 'sidekiqctl')

View file

@ -67,7 +67,7 @@ Rails.application.configure do
# Use a real queuing backend for Active Job (and separate queues per
# environment)
config.active_job.queue_adapter = :sidekiq
config.active_job.queue_adapter = :sucker_punch
config.active_job.queue_name_prefix = "sutty_#{Rails.env}"
config.action_mailer.perform_caching = false

View file

@ -1,13 +0,0 @@
# frozen_string_literal: true
Sidekiq.configure_server do |config|
config.redis = {
url: ENV.fetch('REDIS_SERVER', 'redis://localhost:6379/1')
}
end
Sidekiq.configure_client do |config|
config.redis = {
url: ENV.fetch('REDIS_CLIENT', 'redis://localhost:6379/1')
}
end

View file

@ -1,5 +1,5 @@
check process sutty with pidfile /srv/http/tmp/puma.pid
start program = "/bin/sh -c 'cd /srv/http && foreman start migrate && foreman start sutty && foreman start sidekiq'" as uid app
start program = "/bin/sh -c 'cd /srv/http && foreman start migrate && foreman start sutty'" as uid app
stop program = "/bin/sh -c 'cat /srv/http/tmp/puma.pid | xargs kill'"
check program sync_assets

View file

@ -88,14 +88,11 @@ class SitesControllerTest < ActionDispatch::IntegrationTest
end
test 'se pueden encolar' do
Sidekiq::Testing.fake!
post site_enqueue_url(@site), headers: @authorization
assert DeployWorker.jobs.count.positive?
assert @site.reload.enqueued?
Sidekiq::Testing.inline!
assert File.directory?(@site.deploys.first.destination)
assert File.exist?(File.join(@site.deploys.first.destination,
'index.html'))
end
test 'se pueden actualizar' do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
class DeployWorkerTest < ActiveSupport::TestCase
class DeployJobTest < ActiveSupport::TestCase
test 'se puede compilar' do
rol = create :rol
site = rol.site
@ -8,7 +8,7 @@ class DeployWorkerTest < ActiveSupport::TestCase
site.save
DeployWorker.perform_async(site.id)
DeployJob.perform_async(site.id)
assert_not ActionMailer::Base.deliveries.empty?

View file

@ -3,9 +3,7 @@
require File.expand_path('../config/environment', __dir__)
require 'rails/test_help'
require 'open3'
require 'sidekiq/testing'
Sidekiq::Testing.inline!
require 'sucker_punch/testing/inline'
# rubocop:disable Style/ClassAndModuleChildren
class ActiveSupport::TestCase