mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
sidekiq for processing
This commit is contained in:
parent
44b61170e5
commit
91b4d8aa14
6 changed files with 22 additions and 26 deletions
2
Gemfile
2
Gemfile
|
@ -12,7 +12,7 @@ gem 'rubyzip'
|
|||
gem 'rack-recaptcha', require: 'rack/recaptcha'
|
||||
gem 'rmagick', require: nil
|
||||
gem 'selenium-webdriver', require: nil
|
||||
gem 'backburner'
|
||||
gem 'sidekiq'
|
||||
gem 'ago'
|
||||
|
||||
platform :mri do
|
||||
|
|
19
Gemfile.lock
19
Gemfile.lock
|
@ -5,18 +5,16 @@ GEM
|
|||
ago (0.1.5)
|
||||
hoe (>= 1.12.2)
|
||||
ansi (1.4.3)
|
||||
backburner (0.4.2)
|
||||
beaneater (~> 0.3.1)
|
||||
dante (~> 0.1.5)
|
||||
bcrypt-ruby (3.0.1)
|
||||
beaneater (0.3.1)
|
||||
builder (3.2.0)
|
||||
celluloid (0.14.1)
|
||||
timers (>= 1.0.0)
|
||||
childprocess (0.3.9)
|
||||
ffi (~> 1.0, >= 1.0.11)
|
||||
coderay (1.0.9)
|
||||
columnize (0.3.6)
|
||||
connection_pool (1.1.0)
|
||||
crack (0.3.2)
|
||||
dante (0.1.5)
|
||||
debugger (1.6.0)
|
||||
columnize (>= 0.3.1)
|
||||
debugger-linecache (~> 1.2.0)
|
||||
|
@ -74,6 +72,8 @@ GEM
|
|||
raindrops (0.10.0)
|
||||
rake (10.0.4)
|
||||
redis (3.0.4)
|
||||
redis-namespace (1.3.0)
|
||||
redis (~> 3.0.0)
|
||||
rmagick (2.13.2)
|
||||
rubyzip (0.9.9)
|
||||
selenium-webdriver (2.33.0)
|
||||
|
@ -87,6 +87,12 @@ GEM
|
|||
sequel (>= 3.39.0)
|
||||
shotgun (0.9)
|
||||
rack (>= 1.0)
|
||||
sidekiq (2.12.4)
|
||||
celluloid (>= 0.14.1)
|
||||
connection_pool (>= 1.0.0)
|
||||
json
|
||||
redis (>= 3.0)
|
||||
redis-namespace
|
||||
simplecov (0.7.1)
|
||||
multi_json (~> 1.0)
|
||||
simplecov-html (~> 0.7.1)
|
||||
|
@ -105,6 +111,7 @@ GEM
|
|||
slop (3.4.5)
|
||||
temple (0.6.5)
|
||||
tilt (1.4.1)
|
||||
timers (1.1.0)
|
||||
unicorn (4.6.2)
|
||||
kgio (~> 2.6)
|
||||
rack
|
||||
|
@ -119,7 +126,6 @@ PLATFORMS
|
|||
|
||||
DEPENDENCIES
|
||||
ago
|
||||
backburner
|
||||
bcrypt-ruby
|
||||
fabrication
|
||||
faker
|
||||
|
@ -147,6 +153,7 @@ DEPENDENCIES
|
|||
sequel
|
||||
sequel_pg
|
||||
shotgun
|
||||
sidekiq
|
||||
simplecov
|
||||
sinatra
|
||||
sinatra-flash
|
||||
|
|
5
Rakefile
5
Rakefile
|
@ -1,5 +1,4 @@
|
|||
require "rake/testtask"
|
||||
require 'backburner/tasks'
|
||||
|
||||
task :environment do
|
||||
require './environment.rb'
|
||||
|
@ -37,5 +36,7 @@ end
|
|||
|
||||
desc 'Update screenshots'
|
||||
task :update_screenshots => [:environment] do
|
||||
Site.select(:username).filter(is_banned: false).filter(~{updated_at: nil}).order(:updated_at.desc).all.collect {|s| Backburner.enqueue ScreenshotJob, s.username }
|
||||
Site.select(:username).filter(is_banned: false).filter(~{updated_at: nil}).order(:updated_at.desc).all.collect {|s|
|
||||
ScreenshotWorker.perform_async s.username
|
||||
}
|
||||
end
|
||||
|
|
4
app.rb
4
app.rb
|
@ -234,7 +234,7 @@ post '/site_files/upload' do
|
|||
FileUtils.mv params[:newfile][:tempfile].path, dest_path
|
||||
File.chmod(0640, dest_path) if self.class.production?
|
||||
|
||||
Backburner.enqueue(ScreenshotJob, current_site.username) if sanitized_filename =~ /index\.html/
|
||||
ScreenshotWorker.perform_async(current_site.username) if sanitized_filename =~ /index\.html/
|
||||
|
||||
current_site.update updated_at: Time.now
|
||||
|
||||
|
@ -301,7 +301,7 @@ post '/site_files/save/:filename' do |filename|
|
|||
FileUtils.mv tmpfile.path, dest_path
|
||||
File.chmod(0640, dest_path) if self.class.production?
|
||||
|
||||
Backburner.enqueue(ScreenshotJob, current_site.username) if sanitized_filename =~ /index\.html/
|
||||
ScreenshotWorker.perform_async(current_site.username) if sanitized_filename =~ /index\.html/
|
||||
|
||||
current_site.update updated_at: Time.now
|
||||
|
||||
|
|
|
@ -18,10 +18,6 @@ DB = Sequel.connect $config['database'], sslmode: 'disable', max_connections: $c
|
|||
|
||||
Dir.glob('workers/*.rb').each {|w| require File.join(DIR_ROOT, "/#{w}") }
|
||||
|
||||
Backburner.configure do |config|
|
||||
config.default_worker = Backburner::Workers::ThreadsOnFork
|
||||
end
|
||||
|
||||
if defined?(Pry)
|
||||
Pry.commands.alias_command 'c', 'continue'
|
||||
Pry.commands.alias_command 's', 'step'
|
||||
|
@ -50,12 +46,6 @@ if ENV['RACK_ENV'] == 'development' && Server.count == 0
|
|||
Server.create ip: '127.0.0.1', slots_available: 999999
|
||||
end
|
||||
|
||||
Backburner.configure do |config|
|
||||
config.max_job_retries = 10
|
||||
config.retry_delay = 200
|
||||
config.respond_timeout = 120
|
||||
end
|
||||
|
||||
class Sinatra::Base
|
||||
alias_method :render_original, :render
|
||||
def render(engine, data, options = {}, locals = {}, &block)
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
require 'selenium-webdriver'
|
||||
require 'RMagick'
|
||||
|
||||
class ScreenshotJob
|
||||
include Backburner::Queue
|
||||
class ScreenshotWorker
|
||||
include Sidekiq::Worker
|
||||
|
||||
queue_priority 1000
|
||||
|
||||
def self.perform(username)
|
||||
def perform(username)
|
||||
screenshot = Tempfile.new 'neocities_screenshot'
|
||||
screenshot.close
|
||||
|
Loading…
Add table
Reference in a new issue