From 612479db42dbc2fc8fe4159c328d10be1c9829de Mon Sep 17 00:00:00 2001 From: uu59 Date: Mon, 2 Jun 2014 16:47:37 +0900 Subject: [PATCH] Prefetch gem updates at booting a server --- app/workers/gem_update_check.rb | 10 ++++++++++ config/initializers/prefetch_gem_updates.rb | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 app/workers/gem_update_check.rb create mode 100644 config/initializers/prefetch_gem_updates.rb 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