sidekiq-runner 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sidekiq-runner/god_configuration.rb +2 -1
- data/lib/sidekiq-runner/sidekiq.god +11 -0
- data/lib/sidekiq-runner/sidekiq_instance.rb +4 -2
- data/lib/sidekiq-runner/version.rb +1 -1
- data/script/sidekiq_rbtrace +32 -0
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc538d49e4cd0c3dbd72dd4b32d124c427fe60c1
|
4
|
+
data.tar.gz: e9753e622a05176942872caa99ea4397fe3d9ff2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d511179b7968501b3a169969fcc3c53fc56950e8b1ef18ac9181f55d6a3b1921e78d5bad422f9cb00f465efef103c37fb0ea76e0abeaa4ffe7dff1016a01db8b
|
7
|
+
data.tar.gz: 7203ffee3f9de1de0ff87871bdfd8b0c419b6dfa4b58b92f8fb6da58478a1e58891b34eef1f5b06934a6ca1c4f9f5514945c5dc36d09d45885a975f4cb3e32f4
|
@@ -15,13 +15,14 @@ module SidekiqRunner
|
|
15
15
|
RUNNER_ATTRIBUTES = [:config_file, :daemonize, :port, :syslog, :events]
|
16
16
|
RUNNER_ATTRIBUTES.each { |att| attr_accessor att }
|
17
17
|
|
18
|
-
CONFIG_FILE_ATTRIBUTES = [:process_name, :interval, :stop_timeout, :log_file]
|
18
|
+
CONFIG_FILE_ATTRIBUTES = [:process_name, :interval, :stop_timeout, :log_file, :maximum_memory_usage]
|
19
19
|
CONFIG_FILE_ATTRIBUTES.each { |att| attr_accessor att }
|
20
20
|
|
21
21
|
def initialize
|
22
22
|
@process_name = 'sidekiq'
|
23
23
|
@interval = 30
|
24
24
|
@stop_timeout = 30
|
25
|
+
@maximum_memory_usage = nil
|
25
26
|
|
26
27
|
@log_file = File.join(Dir.pwd, 'log', 'god.log')
|
27
28
|
@config_file = File.join(Dir.pwd, 'config', 'god.yml')
|
@@ -61,6 +61,17 @@ sidekiq_config.each do |name, skiq|
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
+
# Monitor process memory usage.
|
65
|
+
if god_config.maximum_memory_usage
|
66
|
+
w.restart_if do |restart|
|
67
|
+
restart.condition(:memory_usage) do |c|
|
68
|
+
c.above = god_config.maximum_memory_usage.to_i.megabytes
|
69
|
+
c.times = 3
|
70
|
+
c.interval = god_config.interval
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
64
75
|
w.lifecycle do |on|
|
65
76
|
on.condition(:flapping) do |c|
|
66
77
|
c.to_state = [:start, :restart] # If this watch is started or restarted...
|
@@ -4,7 +4,7 @@ module SidekiqRunner
|
|
4
4
|
RUNNER_ATTRIBUTES = [:bundle_env, :chdir, :requirefile]
|
5
5
|
RUNNER_ATTRIBUTES.each { |att| attr_accessor att }
|
6
6
|
|
7
|
-
CONFIG_FILE_ATTRIBUTES = [:concurrency, :verbose, :pidfile, :logfile, :tag]
|
7
|
+
CONFIG_FILE_ATTRIBUTES = [:concurrency, :verbose, :pidfile, :logfile, :tag, :rbtrace]
|
8
8
|
CONFIG_FILE_ATTRIBUTES.each { |att| attr_accessor att }
|
9
9
|
|
10
10
|
attr_reader :name, :queues
|
@@ -23,6 +23,7 @@ module SidekiqRunner
|
|
23
23
|
@concurrency = 4
|
24
24
|
@verbose = false
|
25
25
|
@tag = name
|
26
|
+
@rbtrace = false
|
26
27
|
end
|
27
28
|
|
28
29
|
def add_queue(queue_name, weight = 1)
|
@@ -57,7 +58,8 @@ module SidekiqRunner
|
|
57
58
|
create_directories!
|
58
59
|
|
59
60
|
cmd = []
|
60
|
-
cmd <<
|
61
|
+
cmd << 'bundle exec' if bundle_env
|
62
|
+
cmd << (rbtrace ? File.expand_path('../../../script/sidekiq_rbtrace', __FILE__) : 'sidekiq')
|
61
63
|
cmd << '-d'
|
62
64
|
cmd << "-c #{concurrency}"
|
63
65
|
cmd << '-v' if verbose
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rbtrace'
|
4
|
+
|
5
|
+
def sidekiq_bin
|
6
|
+
require 'sidekiq/cli'
|
7
|
+
|
8
|
+
begin
|
9
|
+
cli = Sidekiq::CLI.instance
|
10
|
+
cli.parse
|
11
|
+
cli.run
|
12
|
+
rescue => e
|
13
|
+
raise e if $DEBUG
|
14
|
+
STDERR.puts e.message
|
15
|
+
STDERR.puts e.backtrace.join("\n")
|
16
|
+
exit 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
sidekiq = `which sidekiq` rescue ''
|
21
|
+
if sidekiq.empty?
|
22
|
+
# When we can't locate the Sidekiq executable, mimick
|
23
|
+
# its behaviour here.
|
24
|
+
sidekiq_bin
|
25
|
+
else
|
26
|
+
begin
|
27
|
+
# Otherwise load the sidekiq executable.
|
28
|
+
load sidekiq.strip
|
29
|
+
rescue
|
30
|
+
sidekiq_bin
|
31
|
+
end
|
32
|
+
end
|
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- FlavourSys Technology GmbH
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
14
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
16
|
- - "~>"
|
18
17
|
- !ruby/object:Gem::Version
|
19
18
|
version: '10.3'
|
20
|
-
|
19
|
+
name: rake
|
21
20
|
prerelease: false
|
22
|
-
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
23
22
|
requirements:
|
24
23
|
- - "~>"
|
25
24
|
- !ruby/object:Gem::Version
|
26
25
|
version: '10.3'
|
26
|
+
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
29
|
requirements:
|
31
30
|
- - "~>"
|
32
31
|
- !ruby/object:Gem::Version
|
33
32
|
version: '0.13'
|
34
|
-
|
33
|
+
name: god
|
35
34
|
prerelease: false
|
36
|
-
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
37
36
|
requirements:
|
38
37
|
- - "~>"
|
39
38
|
- !ruby/object:Gem::Version
|
40
39
|
version: '0.13'
|
40
|
+
type: :runtime
|
41
41
|
description: Provide an easy way to configure, start, and monitor all your Sidekiq
|
42
42
|
processes
|
43
43
|
email: technology@flavoursys.com
|
@@ -52,6 +52,7 @@ files:
|
|
52
52
|
- lib/sidekiq-runner/sidekiq_instance.rb
|
53
53
|
- lib/sidekiq-runner/tasks.rb
|
54
54
|
- lib/sidekiq-runner/version.rb
|
55
|
+
- script/sidekiq_rbtrace
|
55
56
|
homepage: https://github.com/FlavourSys/sidekiq-runner
|
56
57
|
licenses:
|
57
58
|
- MIT
|
@@ -72,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
73
|
version: '0'
|
73
74
|
requirements: []
|
74
75
|
rubyforge_project:
|
75
|
-
rubygems_version: 2.
|
76
|
+
rubygems_version: 2.4.5
|
76
77
|
signing_key:
|
77
78
|
specification_version: 4
|
78
79
|
summary: Sidekiq configuration and rake tasks
|