Class: Sidekiq::Process
- Inherits:
-
Object
- Object
- Sidekiq::Process
- Defined in:
- lib/sidekiq/api.rb
Overview
Sidekiq::Process represents an active Sidekiq process talking with Redis. Each process has a set of attributes which look like this:
'hostname' => 'app-1.example.com',
'started_at' => <process start time>,
'pid' => 12345,
'tag' => 'myapp'
'concurrency' => 5,
'capsules' => {"default" => {"mode" => "weighted", "concurrency" => 5, "weights" => {"default" => 2, "low" => 1}},
'busy' => 3,
'beat' => <last heartbeat>,
'identity' => <unique string the process>,
'embedded' => true,
}
Instance Method Summary collapse
- #[](key) ⇒ Object
- #capsules ⇒ Object
-
#dump_threads ⇒ Object
Signal this process to log backtraces for all threads.
- #embedded? ⇒ Boolean
- #identity ⇒ Object
- #labels ⇒ Object
-
#queues ⇒ Object
deprecated, use capsules below.
-
#quiet! ⇒ Object
Signal this process to stop processing new jobs.
-
#stop! ⇒ Object
Signal this process to shutdown.
-
#stopping? ⇒ Boolean
True if this process is quiet or shutting down.
- #tag ⇒ Object
- #version ⇒ Object
-
#weights ⇒ Object
deprecated, use capsules below.
Instance Method Details
#[](key) ⇒ Object
1084 1085 1086 |
# File 'lib/sidekiq/api.rb', line 1084 def [](key) @attribs[key] end |
#capsules ⇒ Object
1109 1110 1111 |
# File 'lib/sidekiq/api.rb', line 1109 def capsules self["capsules"] end |
#dump_threads ⇒ Object
Signal this process to log backtraces for all threads. Useful if you have a frozen or deadlocked process which is still sending a heartbeat. This method is asynchronous and it can take 5-10 seconds.
1145 1146 1147 |
# File 'lib/sidekiq/api.rb', line 1145 def dump_threads signal("TTIN") end |
#embedded? ⇒ Boolean
1117 1118 1119 |
# File 'lib/sidekiq/api.rb', line 1117 def self["embedded"] end |
#identity ⇒ Object
1088 1089 1090 |
# File 'lib/sidekiq/api.rb', line 1088 def identity self["identity"] end |
#labels ⇒ Object
1080 1081 1082 |
# File 'lib/sidekiq/api.rb', line 1080 def labels self["labels"].to_a end |
#queues ⇒ Object
deprecated, use capsules below
1093 1094 1095 |
# File 'lib/sidekiq/api.rb', line 1093 def queues capsules.values.flat_map { |x| x["weights"].keys }.uniq end |
#quiet! ⇒ Object
Signal this process to stop processing new jobs. It will continue to execute jobs it has already fetched. This method is asynchronous and it can take 5-10 seconds for the process to quiet.
1125 1126 1127 1128 1129 |
# File 'lib/sidekiq/api.rb', line 1125 def quiet! raise "Can't quiet an embedded process" if signal("TSTP") end |
#stop! ⇒ Object
Signal this process to shutdown. It will shutdown within its configured :timeout value, default 25 seconds. This method is asynchronous and it can take 5-10 seconds for the process to start shutting down.
1135 1136 1137 1138 1139 |
# File 'lib/sidekiq/api.rb', line 1135 def stop! raise "Can't stop an embedded process" if signal("TERM") end |
#stopping? ⇒ Boolean
Returns true if this process is quiet or shutting down.
1150 1151 1152 |
# File 'lib/sidekiq/api.rb', line 1150 def stopping? self["quiet"] == "true" end |
#tag ⇒ Object
1076 1077 1078 |
# File 'lib/sidekiq/api.rb', line 1076 def tag self["tag"] end |
#version ⇒ Object
1113 1114 1115 |
# File 'lib/sidekiq/api.rb', line 1113 def version self["version"] end |
#weights ⇒ Object
deprecated, use capsules below
1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 |
# File 'lib/sidekiq/api.rb', line 1098 def weights hash = {} capsules.values.each do |cap| # Note: will lose data if two capsules are processing the same named queue cap["weights"].each_pair do |queue, weight| hash[queue] = weight end end hash end |