Sha256: 175835352d72430638e5895dc54a4de0cad5d71f962f31abe994f8431a2b58f6
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
module Sidetiq module Middleware class History def call(worker, msg, queue, &block) if worker.kind_of?(Sidetiq::Schedulable) call_with_sidetiq_history(worker, msg, queue, &block) else yield end end private def call_with_sidetiq_history(worker, msg, queue) entry = new_history_entry yield rescue StandardError => e entry[:status] = :failure entry[:exception] = e.class.to_s entry[:error] = e.message entry[:backtrace] = e.backtrace raise e ensure save_entry_for_worker(entry, worker) end def new_history_entry { status: :success, error: "", exception: "", backtrace: "", node: "#{Socket.gethostname}:#{Process.pid}-#{Thread.current.object_id}", timestamp: Time.now.iso8601 } end def save_entry_for_worker(entry, worker) Sidekiq.redis do |redis| list_name = "sidetiq:#{worker.class.name}:history" redis.lpush(list_name, JSON.dump(entry)) redis.ltrim(list_name, 0, Sidetiq.config.worker_history - 1) end end end end end Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add Sidetiq::Middleware::History end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
sidetiq-0.4.0 | lib/sidetiq/middleware/history.rb |
sidetiq-0.4.0.rc4 | lib/sidetiq/middleware/history.rb |
sidetiq-0.4.0.rc3 | lib/sidetiq/middleware/history.rb |