Module: Sidekiq::Status
- Extended by:
- Storage
- Defined in:
- lib/sidekiq-status/version.rb,
lib/sidekiq-status/testing/inline.rb,
lib/sidekiq-status/client_middleware.rb,
lib/sidekiq-status/server_middleware.rb,
lib/sidekiq-status/helpers.rb,
lib/sidekiq-status/web.rb,
lib/sidekiq-status.rb
Defined Under Namespace
Modules: Storage, Web, Worker
Classes: ClientMiddleware, RedisAdapter, RedisClientAdapter, ServerMiddleware
Constant Summary
collapse
- VERSION =
'4.0.0'
- DEFAULT_EXPIRY =
60 * 30
- STATUS =
[ :queued, :working, :retrying, :complete, :stopped, :failed, :interrupted ].freeze
Constants included
from Storage
Storage::BATCH_LIMIT, Storage::RESERVED_FIELDS
Class Method Summary
collapse
Class Method Details
.at(job_id) ⇒ Object
Methods for retrieving job completion
58
59
60
|
# File 'lib/sidekiq-status.rb', line 58
def at(job_id)
get(job_id, :at).to_i
end
|
.cancel(job_id, job_unix_time = nil) ⇒ Object
Also known as:
unschedule
37
38
39
|
# 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.
64
65
66
67
68
|
# File 'lib/sidekiq-status/client_middleware.rb', line 64
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.
85
86
87
88
89
|
# File 'lib/sidekiq-status/server_middleware.rb', line 85
def self.configure_server_middleware(sidekiq_config, server_middleware_options = {})
sidekiq_config.server_middleware do |chain|
chain.add Sidekiq::Status::ServerMiddleware, server_middleware_options
end
end
|
.delete(job_id) ⇒ Object
41
42
43
|
# File 'lib/sidekiq-status.rb', line 41
def delete(job_id)
delete_status(job_id)
end
|
.ended_at(job_id) ⇒ Object
83
84
85
|
# File 'lib/sidekiq-status.rb', line 83
def ended_at(job_id)
get(job_id, :ended_at)&.to_i
end
|
.enqueued_at(job_id) ⇒ Object
70
71
72
|
# File 'lib/sidekiq-status.rb', line 70
def enqueued_at(job_id)
get(job_id, :enqueued_at)&.to_i
end
|
.eta(job_id) ⇒ Object
87
88
89
90
91
92
93
94
95
|
# File 'lib/sidekiq-status.rb', line 87
def eta(job_id)
at = at(job_id)
return nil if at.zero?
start_time = started_at(job_id) || enqueued_at(job_id) || updated_at(job_id)
elapsed = Time.now.to_i - start_time if start_time
return nil unless elapsed
elapsed.to_f / at * (total(job_id) - at)
end
|
.get(job_id, field) ⇒ String
21
22
23
|
# File 'lib/sidekiq-status.rb', line 21
def get(job_id, field)
read_field_for_id(job_id, field)
end
|
.get_all(job_id) ⇒ Hash
Get all status fields for a job
28
29
30
|
# File 'lib/sidekiq-status.rb', line 28
def get_all(job_id)
read_hash_for_id(job_id)
end
|
.message(job_id) ⇒ Object
97
98
99
|
# File 'lib/sidekiq-status.rb', line 97
def message(job_id)
get(job_id, :message)
end
|
.pct_complete(job_id) ⇒ Object
66
67
68
|
# File 'lib/sidekiq-status.rb', line 66
def pct_complete(job_id)
get(job_id, :pct_complete).to_i
end
|
.redis_adapter ⇒ Object
109
110
111
|
# File 'lib/sidekiq-status.rb', line 109
def redis_adapter
Sidekiq.redis { |conn| yield wrap_redis_connection(conn) }
end
|
.started_at(job_id) ⇒ Object
74
75
76
|
# File 'lib/sidekiq-status.rb', line 74
def started_at(job_id)
get(job_id, :started_at)&.to_i
end
|
.status(job_id) ⇒ Object
4
5
6
|
# File 'lib/sidekiq-status/testing/inline.rb', line 4
def status(jid)
:complete
end
|
.stop!(job_id) ⇒ Object
45
46
47
|
# File 'lib/sidekiq-status.rb', line 45
def stop!(job_id)
store_for_id(job_id, {stop: 'true'})
end
|
.total(job_id) ⇒ Object
62
63
64
|
# File 'lib/sidekiq-status.rb', line 62
def total(job_id)
get(job_id, :total).to_i
end
|
.updated_at(job_id) ⇒ Object
78
79
80
81
|
# File 'lib/sidekiq-status.rb', line 78
def updated_at(job_id)
get(job_id, :updated_at)&.to_i || get(job_id, :update_time)&.to_i
end
|
.wrap_redis_connection(conn) ⇒ Object