From 4acb1c73dddd2666cc4e2af5d2b1dc7ec997ae09 Mon Sep 17 00:00:00 2001 From: unarist Date: Sat, 7 Oct 2017 03:39:08 +0900 Subject: [PATCH] Improve error handling on LinkCrawlWorker (#5250) * Improve error handling on LinkCrawlWorker * Ignore TimeoutError and InvalidURIError too * Record errors to debug log * Enable dead job queue on LinkCrawlWorker Since most of acceptable errors were already ignored, only our side issue should go to dead job queue. * Ignore all http gem errors --- app/services/fetch_link_card_service.rb | 3 ++- app/workers/link_crawl_worker.rb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb index 4acbfae7a0..cf3d786830 100644 --- a/app/services/fetch_link_card_service.rb +++ b/app/services/fetch_link_card_service.rb @@ -27,7 +27,8 @@ class FetchLinkCardService < BaseService end attach_card if @card&.persisted? - rescue HTTP::ConnectionError, OpenSSL::SSL::SSLError + rescue HTTP::Error, Addressable::URI::InvalidURIError => e + Rails.logger.debug "Error fetching link #{@url}: #{e}" nil end diff --git a/app/workers/link_crawl_worker.rb b/app/workers/link_crawl_worker.rb index 834b0088bd..b3d8aa2646 100644 --- a/app/workers/link_crawl_worker.rb +++ b/app/workers/link_crawl_worker.rb @@ -3,7 +3,7 @@ class LinkCrawlWorker include Sidekiq::Worker - sidekiq_options queue: 'pull', retry: false + sidekiq_options queue: 'pull', retry: 0 def perform(status_id) FetchLinkCardService.new.call(Status.find(status_id))