diff --git a/app/workers/gem_update_check.rb b/app/workers/gem_update_check.rb new file mode 100644 index 0000000..4a7a1a2 --- /dev/null +++ b/app/workers/gem_update_check.rb @@ -0,0 +1,10 @@ +class GemUpdateCheck + include SuckerPunch::Job + workers 16 + + def perform(gem_name) + SuckerPunch.logger.info "check #{gem_name} latest version" + pl = Plugin.new(gem_name: gem_name) + pl.latest_version # NOTE: latest_version will cache rubygems.org response + end +end diff --git a/config/initializers/prefetch_gem_updates.rb b/config/initializers/prefetch_gem_updates.rb new file mode 100644 index 0000000..7d2ebaf --- /dev/null +++ b/config/initializers/prefetch_gem_updates.rb @@ -0,0 +1,3 @@ +Plugin.installed.each do |pl| + GemUpdateCheck.new.async.perform(pl.gem_name) +end