diff --git a/Gemfile b/Gemfile index 65aefa7b..d0342d3a 100644 --- a/Gemfile +++ b/Gemfile @@ -12,6 +12,7 @@ gem 'html2rss-configs', github: 'html2rss/html2rss-configs' # gem 'html2rss-configs', path: '../html2rss-configs' gem 'erubi' +gem 'parallel' gem 'rack-cache' gem 'rack-timeout' gem 'rack-unreloader' diff --git a/Gemfile.lock b/Gemfile.lock index e4a7acbb..d3653a11 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,6 +150,7 @@ DEPENDENCIES erubi html2rss html2rss-configs! + parallel puma rack-cache rack-timeout diff --git a/app/health_check.rb b/app/health_check.rb index 9a363b61..f0c56094 100644 --- a/app/health_check.rb +++ b/app/health_check.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'parallel' + require_relative 'local_config' module App @@ -44,7 +46,7 @@ def run # @return [Array] def errors [].tap do |errors| - LocalConfig.feed_names.each do |feed_name| + Parallel.each(LocalConfig.feed_names, in_threads: 4) do |feed_name| Html2rss.feed_from_yaml_config(LocalConfig::CONFIG_FILE, feed_name.to_s).to_s rescue StandardError => e errors << "[#{feed_name}] #{e.class}: #{e.message}"