module Sidekiq::Status

adapted from github.com/cryo28/sidekiq_status

Constants

DEFAULT_EXPIRY
STATUS
VERSION

Public Class Methods

at(job_id) click to toggle source

Methods for retrieving job completion

# File lib/sidekiq-status.rb, line 54
def at(job_id)
  get(job_id, :at).to_i
end
cancel(job_id, job_unix_time = nil) click to toggle source
# File lib/sidekiq-status.rb, line 37
def cancel(job_id, job_unix_time = nil)
  delete_and_unschedule(job_id, job_unix_time)
end
Also aliased as: unschedule
configure_client_middleware(sidekiq_config, client_middleware_options = {}) click to toggle source

Helper method to easily configure sidekiq-status client middleware whatever the Sidekiq version is. @param [Sidekiq] sidekiq_config the Sidekiq config @param [Hash] client_middleware_options client middleware initialization options @option client_middleware_options [Fixnum] :expiration ttl for complete jobs

# File lib/sidekiq-status/client_middleware.rb, line 63
def self.configure_client_middleware(sidekiq_config, client_middleware_options = {})
  sidekiq_config.client_middleware do |chain|
    chain.add Sidekiq::Status::ClientMiddleware, client_middleware_options
  end
end
configure_server_middleware(sidekiq_config, server_middleware_options = {}) click to toggle source

Helper method to easily configure sidekiq-status server middleware whatever the Sidekiq version is. @param [Sidekiq] sidekiq_config the Sidekiq config @param [Hash] server_middleware_options server middleware initialization options @option server_middleware_options [Fixnum] :expiration ttl for complete jobs

# File lib/sidekiq-status/server_middleware.rb, line 94
def self.configure_server_middleware(sidekiq_config, server_middleware_options = {})
  sidekiq_config.server_middleware do |chain|
    if Sidekiq.major_version < 5
      chain.insert_after Sidekiq::Middleware::Server::Logging,
        Sidekiq::Status::ServerMiddleware, server_middleware_options
    else
      chain.add Sidekiq::Status::ServerMiddleware, server_middleware_options
    end
  end

end
delete(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 41
def delete(job_id)
  delete_status(job_id)
end
eta(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 74
def eta(job_id)
  at = at(job_id)
  return nil if at.zero?

  (Time.now.to_i - working_at(job_id)).to_f / at * (total(job_id) - at)
end
get(job_id, field) click to toggle source

Job status by id @param [String] id job id returned by async_perform @return [String] job status, possible values are in STATUS

# File lib/sidekiq-status.rb, line 21
def get(job_id, field)
  read_field_for_id(job_id, field)
end
get_all(job_id) click to toggle source

Get all status fields for a job @params [String] id job id returned by async_perform @return [Hash] hash of all fields stored for the job

# File lib/sidekiq-status.rb, line 28
def get_all(job_id)
  read_hash_for_id(job_id)
end
message(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 81
def message(job_id)
  get(job_id, :message)
end
pct_complete(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 62
def pct_complete(job_id)
  get(job_id, :pct_complete).to_i
end
redis_adapter() { |wrap_redis_connection(conn)| ... } click to toggle source
# File lib/sidekiq-status.rb, line 93
def redis_adapter
  Sidekiq.redis { |conn| yield wrap_redis_connection(conn) }
end
status(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 32
def status(job_id)
  status = get(job_id, :status)
  status.to_sym  unless status.nil?
end
total(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 58
def total(job_id)
  get(job_id, :total).to_i
end
unschedule(job_id, job_unix_time = nil)
Alias for: cancel
update_time(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 70
def update_time(job_id)
  (get(job_id, :update_time) || Time.now).to_i
end
working_at(job_id) click to toggle source
# File lib/sidekiq-status.rb, line 66
def working_at(job_id)
  (get(job_id, :working_at) || Time.now).to_i
end
wrap_redis_connection(conn) click to toggle source
# File lib/sidekiq-status.rb, line 85
def wrap_redis_connection(conn)
  if Sidekiq.major_version >= 7
    conn.is_a?(RedisClientAdapter) ? conn : RedisClientAdapter.new(conn)
  else
    conn.is_a?(RedisAdapter) ? conn : RedisAdapter.new(conn)
  end
end