opener-daemons 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88c5a468c3c59372fdcf6e7871ae9b0b6263f95a
4
- data.tar.gz: f94d453906e3617b222c3c03596ff26e3ef1832b
3
+ metadata.gz: d2eacba33e31086ca9553118a83530bf263e6226
4
+ data.tar.gz: 76a8a29f7dc9cc33b9d63145b9850f1ff375a913
5
5
  SHA512:
6
- metadata.gz: 79646a3b36acc015c5be3b055fee3a8ecde940099263e3967d87f4f121648db4b4b5c84fe401075671095c536c8406f08469f103b006491535d50d94263b7f6c
7
- data.tar.gz: da90a03f93966aae4197a2bb9186c559f496a66d288df76bbbda65ad407479b5c10076ca37de56eff76d409f13a828b741ca78cd53125d54a969de2a879597c8
6
+ metadata.gz: 2b7c6c7fd270e39ec41311378948dc085f9051c29044156a1b0ccc004e88b0ed56e2f0e87728427cba1a9a546b6303e7200687716286aae87a16063fa2de8380
7
+ data.tar.gz: c5153594d5c10b19c1c517919c4e8a275d72f3395b49406ea287c5fdb152efe03ecef8bcf58cf0d7d09c3ee3140891a286506d6efd758d48a6638ca72fa6f88b
@@ -17,13 +17,13 @@ module Opener
17
17
  @output_queue = Opener::Daemons::SQS.find(options.fetch(:output_queue))
18
18
 
19
19
  @threads = {}
20
- @threads[:writers] = []
21
20
  @threads[:readers] = []
22
21
  @threads[:workers] = []
22
+ @threads[:writers] = []
23
23
 
24
24
  @thread_counts = {}
25
- @thread_counts[:workers] = options.fetch(:workers, 1)
26
- @thread_counts[:readers] = options.fetch(:readers, 5)
25
+ @thread_counts[:readers] = options.fetch(:readers, 1)
26
+ @thread_counts[:workers] = options.fetch(:workers, 5)
27
27
  @thread_counts[:writers] = options.fetch(:writers, 1)
28
28
 
29
29
  @batch_size = options.fetch(:batch_size, 10)
@@ -40,6 +40,7 @@ module Opener
40
40
  else
41
41
  Logger::INFO
42
42
  end
43
+
43
44
  end
44
45
 
45
46
  def buffer_new_messages
@@ -117,13 +118,21 @@ module Opener
117
118
  reporter = Thread.new do
118
119
  loop do
119
120
  logger.debug "input buffer: #{input_buffer.size} \t output buffer: #{output_buffer.size}"
121
+
122
+ thread_types = [:readers, :workers, :writers]
123
+ thread_counts = thread_types.map do |type|
124
+ threads[type].select{|thread| thread.status}.count
125
+ end
126
+ zip = thread_types.zip(thread_counts)
127
+ logger.debug "active thread counts: #{zip}"
128
+
120
129
  sleep(2)
121
130
  end
122
131
  end
123
132
 
124
- threads[:writers].each(&:join)
125
133
  threads[:readers].each(&:join)
126
134
  threads[:workers].each(&:join)
135
+ threads[:writers].each(&:join)
127
136
  end
128
137
 
129
138
  def buffer_size
@@ -3,17 +3,37 @@ require 'optparse'
3
3
  module Opener
4
4
  module Daemons
5
5
  class OptParser
6
+ attr_accessor :option_parser, :options
7
+
8
+ def initialize(&block)
9
+ @options = {}
10
+ @option_parser = construct_option_parser(options, &block)
11
+ end
12
+
13
+ def parse(args)
14
+ process(:parse, args)
15
+ end
16
+
17
+ def parse!(args)
18
+ process(:parse!, args)
19
+ end
6
20
 
7
21
  def self.parse(args)
8
- process(args, :parse)
22
+ new.parse(args)
9
23
  end
10
24
 
11
25
  def self.parse!(args)
12
- process(args, :parse!)
26
+ new.parse!(args)
13
27
  end
14
28
 
15
- def self.process(args, call)
16
- options = {}
29
+ private
30
+
31
+ def process(call, args)
32
+ option_parser.send(call, args)
33
+ return options
34
+ end
35
+
36
+ def construct_option_parser(options, &block)
17
37
  script_name = File.basename($0, ".rb")
18
38
 
19
39
  OptionParser.new do |opts|
@@ -21,7 +41,15 @@ module Opener
21
41
  opts.separator ""
22
42
  opts.separator "When calling #{script_name} without <start|stop|restart> the daemon will start as a foreground process"
23
43
  opts.separator ""
24
- opts.separator "Specific options:"
44
+
45
+ if block_given?
46
+ opts.separator "Component Specific options:"
47
+ opts.separator ""
48
+ yield opts, options
49
+ opts.separator ""
50
+ end
51
+
52
+ opts.separator "Daemon options:"
25
53
 
26
54
  opts.on("-i", "--input INPUT_QUEUE_NAME", "Input queue name") do |v|
27
55
  options[:input_queue] = v
@@ -73,9 +101,7 @@ module Opener
73
101
  puts opts
74
102
  exit
75
103
  end
76
- end.send(call, args)
77
-
78
- return options
104
+ end
79
105
  end
80
106
  end
81
107
  end
@@ -1,5 +1,5 @@
1
1
  module Opener
2
2
  module Daemons
3
- VERSION = "0.3.1"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.add_development_dependency "bundler", "~> 1.5"
26
26
  spec.add_development_dependency "rake"
27
+ spec.add_development_dependency "rspec"
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opener-daemons
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wilco van Duinkerken
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-06 00:00:00.000000000 Z
11
+ date: 2014-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -66,6 +66,20 @@ dependencies:
66
66
  version: '0'
67
67
  prerelease: false
68
68
  type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ prerelease: false
82
+ type: :development
69
83
  description: Daemonize OpeNER components and make them read from an SQS queue. JRuby compatible.
70
84
  email:
71
85
  - wilco@sparkboxx.com