Class: Sidekiq::Promise::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/promise/middleware.rb

Direct Known Subclasses

ClientMiddleware, ServerMiddleware

Constant Summary collapse

CHANNEL =
'/sidekiq_jobs'

Instance Method Summary collapse

Instance Method Details

#job_completed(job, result = nil, redis_pool = Sidekiq::Promise.redis_pool) ⇒ Object



15
16
17
# File 'lib/sidekiq/promise/middleware.rb', line 15

def job_completed job, result=nil, redis_pool=Sidekiq::Promise.redis_pool
  publish_message redis_pool, status: 'complete', job: job, jid: job['jid'], result: result
end

#job_dequeued(job, redis_pool = Sidekiq::Promise.redis_pool) ⇒ Object



11
12
13
# File 'lib/sidekiq/promise/middleware.rb', line 11

def job_dequeued job, redis_pool=Sidekiq::Promise.redis_pool
  publish_message redis_pool, status: 'dequeued', job: job, jid: job['jid']
end

#job_enqueued(job, redis_pool = Sidekiq::Promise.redis_pool) ⇒ Object



7
8
9
# File 'lib/sidekiq/promise/middleware.rb', line 7

def job_enqueued job, redis_pool=Sidekiq::Promise.redis_pool
  publish_message redis_pool, status: 'enqueued', job: job, jid: job['jid']
end

#job_errored(job, e, redis_pool = Sidekiq::Promise.redis_pool) ⇒ Object



19
20
21
# File 'lib/sidekiq/promise/middleware.rb', line 19

def job_errored job, e, redis_pool=Sidekiq::Promise.redis_pool
  publish_message redis_pool, status: 'error', job: job, exception: {class: e.class.to_s, message: e.message, backtrace: e.backtrace}, jid: job['jid']
end

#publish_message(redis_pool, message) ⇒ Object



23
24
25
26
27
# File 'lib/sidekiq/promise/middleware.rb', line 23

def publish_message redis_pool, message
  redis_pool.with do |redis|
    redis.publish CHANNEL, message.to_json
  end
end