stalk-boss 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/VERSION +1 -1
  2. data/lib/stalk_boss.rb +26 -10
  3. metadata +2 -2
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/lib/stalk_boss.rb CHANGED
@@ -17,22 +17,30 @@ module Stalker
17
17
  end
18
18
  module StalkBoss
19
19
  class Stalk
20
- attr_accessor :pipe, :worker, :log
20
+ attr_accessor :pipes, :worker, :workers, :log
21
21
 
22
- def initialize(worker, log=nil?)
22
+ def pipes
23
+ @pipes ||= []
24
+ end
25
+
26
+ def initialize(worker, workers=1, log=nil)
23
27
  super
24
- @worker = worker
25
- @log = log
28
+ @worker = worker
29
+ @workers = workers
30
+ @log = log
26
31
  end
27
32
 
28
- def pid
29
- @pipe.pid unless @pipe.nil?
33
+ def pids
34
+ @pipes.map(&:pid) unless @pipe.nil?
30
35
  end
31
36
 
32
37
  def start
33
- @pipe = IO.popen("bossed_stalk #{@worker} #{@log}")
38
+ (1..@workers).each do
39
+ @pipes << IO.popen("bossed_stalk #{@worker} #{@log}")
40
+ end
34
41
  end
35
42
 
43
+
36
44
  end
37
45
 
38
46
  def stalk_jobs
@@ -40,18 +48,26 @@ module StalkBoss
40
48
  end
41
49
 
42
50
  def stalk_job(worker, options={}, &block)
43
- stalk = Stalk.new(worker, options[:log])
51
+ stalk = Stalk.new(worker, options[:workers], options[:log])
44
52
  yield(stalk) if block_given?
45
53
  stalk_jobs << stalk
46
54
  stalk
47
55
  end
48
56
 
49
57
  def term
50
- stalk_jobs.each{ |s| Process.kill 'INT', s.pid }
58
+ stalk_jobs.each do |s|
59
+ s.pids.each do |pid|
60
+ Process.kill 'INT', pid
61
+ end
62
+ end
51
63
  end
52
64
 
53
65
  def soft_quit
54
- stalk_jobs.each{ |s| Process.kill 'QUIT', s.pid }
66
+ stalk_jobs.each do |s|
67
+ s.pids.each do |pid|
68
+ Process.kill 'QUIT', pid
69
+ end
70
+ end
55
71
  end
56
72
 
57
73
  def start
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ryan Dew