Sha256: 4b31072eaa448c16b8deb7b06a0df6e0d4419ff77424a5d1b2f186a5a66fbe86
Contents?: true
Size: 1.28 KB
Versions: 2
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true module Miteru class Orchestrator < Service def call logger.info("#{non_cached_websites.length} websites loaded in total.") if verbose? array_of_args = non_cached_websites.map { |website| [website.url, website.source] } Jobs::CrawleJob.perform_bulk(array_of_args, batch_size: Miteru.config.sidekiq_batch_size) end # # @return [Array<Miteru::Website>] # def websites @websites ||= [].tap do |out| feeds.each do |feed| result = feed.result if result.success? websites = result.value! logger.info("Feed:#{feed.source} has #{websites.length} websites.") if verbose? out << websites else logger.warn("Feed:#{feed.source} failed - #{result.failure}") end end end.flatten.uniq(&:url) end # # @return [Array<Miteru::Website>] # def non_cached_websites @non_cached_websites ||= [].tap do |out| out << if cache? websites.reject { |website| cache.cached?(website.url) } else websites end end.flatten.uniq(&:url) end # # @return [Array<Miteru::Feeds::Base>] # def feeds @feeds ||= Miteru.feeds.map(&:new) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
miteru-3.0.1 | lib/miteru/orchestrator.rb |
miteru-3.0.0 | lib/miteru/orchestrator.rb |