diff --git a/Gemfile b/Gemfile index 545b0121..f250144a 100644 --- a/Gemfile +++ b/Gemfile @@ -23,6 +23,7 @@ gem 'zipruby' gem 'sass', require: nil gem 'dav4rack' gem 'filesize' +gem 'thread' platform :mri do gem 'magic' # sudo apt-get install file, For OSX: brew install libmagic diff --git a/Gemfile.lock b/Gemfile.lock index 5c1c776c..436ef6bd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -181,6 +181,7 @@ GEM json (~> 1.8.1) mime-types (>= 1.25, < 3.0) rest-client (~> 1.4) + thread (0.1.4) thread_safe (0.3.4) tilt (1.4.1) timers (1.1.0) @@ -250,6 +251,7 @@ DEPENDENCIES sinatra-flash sinatra-xsendfile stripe + thread tilt webmock zipruby diff --git a/Rakefile b/Rakefile index ec7ed7cb..5458f365 100644 --- a/Rakefile +++ b/Rakefile @@ -51,13 +51,6 @@ task :parse_logs => [:environment] do end 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| - ScreenshotWorker.perform_async s.username - } -end - desc 'Update banned IPs list' task :update_blocked_ips => [:environment] do @@ -170,9 +163,23 @@ task :cleantags => [:environment] do end end + require 'thread/pool' + desc 'update screenshots' -task :updatescreenshots => [:environment] do - Site.select(:username).where(site_changed: true, is_banned: false, is_crashing: false).all.each do |site| - ScreenshotWorker.new.perform site.username, 'index.html' +task :update_screenshots => [:environment] do + pool = Thread.pool 10 + Site.select(:username).where(site_changed: true, is_banned: false, is_crashing: false).filter(~{updated_at: nil}).order(:updated_at.desc).all.each do |site| + pool.process { ScreenshotWorker.new.perform site.username, 'index.html' } end -end \ No newline at end of file + + sleep +end + +=begin +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| + ScreenshotWorker.perform_async s.username + } +end +=end \ No newline at end of file diff --git a/views/_news.erb b/views/_news.erb index 3d2192c1..9a735e5a 100644 --- a/views/_news.erb +++ b/views/_news.erb @@ -89,7 +89,7 @@ <% comment_actioning_site = comment.actioning_site_dataset.select(:id, :title, :domain, :username).first %>