module Sidekiq::Status
adapted from github.com/cryo28/sidekiq_status
Constants
- DEFAULT_EXPIRY
- STATUS
- VERSION
Public Class Methods
Methods for retrieving job completion
# File lib/sidekiq-status.rb, line 54 def at(job_id) get(job_id, :at).to_i end
# File lib/sidekiq-status.rb, line 37 def cancel(job_id, job_unix_time = nil) delete_and_unschedule(job_id, job_unix_time) end
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
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
# File lib/sidekiq-status.rb, line 41 def delete(job_id) delete_status(job_id) end
# 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
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 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
# File lib/sidekiq-status.rb, line 81 def message(job_id) get(job_id, :message) end
# File lib/sidekiq-status.rb, line 62 def pct_complete(job_id) get(job_id, :pct_complete).to_i end
# File lib/sidekiq-status.rb, line 93 def redis_adapter Sidekiq.redis { |conn| yield wrap_redis_connection(conn) } end
# File lib/sidekiq-status.rb, line 32 def status(job_id) status = get(job_id, :status) status.to_sym unless status.nil? end
# File lib/sidekiq-status.rb, line 58 def total(job_id) get(job_id, :total).to_i end
# File lib/sidekiq-status.rb, line 70 def update_time(job_id) (get(job_id, :update_time) || Time.now).to_i end
# File lib/sidekiq-status.rb, line 66 def working_at(job_id) (get(job_id, :working_at) || Time.now).to_i end
# 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