run_rabbit_run 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,7 +10,7 @@ module RunRabbitRun
10
10
  processes: 1,
11
11
  }.merge(options)
12
12
 
13
- @options[:processes] = 1 unless @options[:processes].to_i > 0
13
+ @options[:processes] = 1 unless @options[:processes].to_i >= 0
14
14
 
15
15
  raise "File not exists: #{@options[:path]}" unless File.exists?(@options[:path])
16
16
  end
@@ -24,7 +24,7 @@ module RunRabbitRun
24
24
  end
25
25
 
26
26
  def processes value
27
- options[:processes] = value > 0 ? value : 1
27
+ options[:processes] = value >= 0 ? value : 1
28
28
  end
29
29
 
30
30
  def log_to_master value
@@ -26,7 +26,9 @@ module RunRabbitRun
26
26
  system_messages.publish(@name, :master, :message_processed, { queue: queue.name } ) if @options[:log_to_master]
27
27
  end
28
28
 
29
- rabbitmq.instance_eval File.read(@options[:path]), @options[:path]
29
+ add_timer 1 do
30
+ rabbitmq.instance_eval File.read(@options[:path]), @options[:path]
31
+ end
30
32
 
31
33
  before_exit do
32
34
  system_messages.publish(@name, :master, :process_quit)
@@ -1,3 +1,3 @@
1
1
  module RunRabbitRun
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -18,16 +18,32 @@ module RunRabbitRun
18
18
 
19
19
  def check
20
20
  @workers.each do | name, workers |
21
+ processes = RunRabbitRun.config[:workers][name][:processes]
22
+
21
23
  workers.each do | guid, worker |
22
- worker.run unless worker.running?
24
+ unless worker.running?
25
+ if processes == 0
26
+ @workers[name].delete(guid)
27
+ else
28
+ worker.run
29
+ end
30
+ end
23
31
  end
24
- diff = RunRabbitRun.config[:workers][name][:processes] - workers.size
32
+ diff = processes - workers.size
25
33
  diff.times{ run_new_worker name } if diff > 0
26
34
  end
27
35
  end
28
36
 
29
37
  def add name
30
- run_new_worker name
38
+ if RunRabbitRun.config[:run].include? name.to_sym
39
+ run_new_worker name
40
+ else
41
+ if RunRabbitRun.config[:workers].keys.include? name.to_sym
42
+ RunRabbitRun.logger.error "[#{name}] worker is not included into [#{RunRabbitRun.config[:environment]}] profile"
43
+ else
44
+ RunRabbitRun.logger.error "No configuration found for [#{name}] worker"
45
+ end
46
+ end
31
47
  end
32
48
 
33
49
  def remove name
@@ -23,5 +23,4 @@ Gem::Specification.new do |gem|
23
23
  gem.add_dependency "amqp"
24
24
 
25
25
  gem.add_development_dependency 'pry'
26
- gem.add_development_dependency 'pry-remote'
27
26
  end
@@ -13,3 +13,5 @@ worker :worker2, 'workers/worker_name_2.rb' do
13
13
 
14
14
  processes 1
15
15
  end
16
+
17
+ worker :worker3, 'workers/worker_name_3.rb', processes: 0
@@ -1 +1 @@
1
- run :worker1, :worker2
1
+ run :worker1, :worker2, :worker3
@@ -0,0 +1,5 @@
1
+ RunRabbitRun.logger.info "run worker 3 for 20 seconds"
2
+
3
+ sleep 20
4
+
5
+ stop
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: run_rabbit_run
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -75,22 +75,6 @@ dependencies:
75
75
  - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: pry-remote
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
78
  description: RunRabbitRun gem lets to run and manage multiple ruby processes for RabbitMQ
95
79
  email:
96
80
  - arturs.kreipans@gmail.com
@@ -126,6 +110,7 @@ files:
126
110
  - spec/dummy/config/rrr/development.rb
127
111
  - spec/dummy/workers/worker_name_1.rb
128
112
  - spec/dummy/workers/worker_name_2.rb
113
+ - spec/dummy/workers/worker_name_3.rb
129
114
  homepage: ''
130
115
  licenses: []
131
116
  post_install_message:
@@ -157,3 +142,4 @@ test_files:
157
142
  - spec/dummy/config/rrr/development.rb
158
143
  - spec/dummy/workers/worker_name_1.rb
159
144
  - spec/dummy/workers/worker_name_2.rb
145
+ - spec/dummy/workers/worker_name_3.rb