alephant-publisher 0.1.7 → 0.1.8

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: f7a546293bdb650ca60f791e611b1194265844d9
4
- data.tar.gz: d057c5d138bf919c99b380d4d6c95f5e9da53a52
3
+ metadata.gz: 8e0c6d395199ede453fac6b8b6b3e9eaaeec56ec
4
+ data.tar.gz: 9c664aa1d19d1fb9764804ae3a34511c3160a711
5
5
  SHA512:
6
- metadata.gz: 7b5dc9fe8145b15ff5770edbf654d579922d701bd8e2d6c1deeecdabbe7048bf921463d5fd562aa70ef8675472516b583df011b2cb34f4cc41edb1161fb11f59
7
- data.tar.gz: 30c91c4e2d1fac07504c82991f4f93e67b36accfd59901f0e5c7808f9e97b9b8068c0cf78eac6fdb20b0d0f1d8f48088834551230eaac5d8554f3be50498535b
6
+ metadata.gz: dc4dfe7f79f38ba2a27d236e8a0424e3f72cb757e4cbcb61fef79c81a19e23d55d610af33098e9c304f47337cb9a923401ac59ffe15831902497ad786502c759
7
+ data.tar.gz: f41dbe6883cb31dbde88d9e6515263965fbddbeaf47015168ebbc6977a0bb9152b06c106fdc447afa55d841127e9d84e84d092e57a1c628212c378ff84494a80
@@ -1,15 +1,8 @@
1
1
  require_relative 'env'
2
2
 
3
- require 'java'
4
-
5
- java_import 'java.util.concurrent.ThreadPoolExecutor'
6
- java_import 'java.util.concurrent.TimeUnit'
7
- java_import 'java.util.concurrent.LinkedBlockingQueue'
8
- java_import 'java.util.concurrent.FutureTask'
9
-
10
3
  require 'alephant/publisher/version'
11
4
  require 'alephant/publisher/queue'
12
- require 'alephant/publisher/publish_task'
5
+ require 'alephant/publisher/writer'
13
6
  require 'alephant/logger'
14
7
 
15
8
  module Alephant
@@ -21,13 +14,8 @@ module Alephant
21
14
  end
22
15
 
23
16
  class Publisher
24
-
25
17
  VISIBILITY_TIMEOUT = 60
26
- KEEP_ALIVE_TIMEOUT = 60
27
18
  RECEIVE_WAIT_TIME = 15
28
- POOL_MIN_SIZE = 2
29
- POOL_MAX_SIZE = 4
30
- QUEUE_THROTTLE = 0.5
31
19
 
32
20
  attr_reader :queue, :executor
33
21
 
@@ -53,32 +41,21 @@ module Alephant
53
41
  :lookup_table_name
54
42
  ].include? k
55
43
  end
56
-
57
- @executor = ThreadPoolExecutor.new(
58
- @opts.fetch(:renderer_pool_min_size, POOL_MIN_SIZE).to_i,
59
- @opts.fetch(:renderer_pool_max_size, POOL_MAX_SIZE).to_i,
60
- @opts.fetch(:render_keep_alive_time, KEEP_ALIVE_TIMEOUT).to_i,
61
- TimeUnit::SECONDS,
62
- LinkedBlockingQueue.new
63
- )
64
44
  end
65
45
 
66
46
  def run!
67
- while true
68
- executor.execute(
69
- FutureTask.new(
70
- PublishTask.new(
71
- @writer_opts,
72
- @queue.message
73
- )
74
- )
75
- )
47
+ loop { process(@queue.message) }
48
+ end
76
49
 
77
- sleep QUEUE_THROTTLE while executor.getActiveCount == executor.getMaximumPoolSize
78
- end
50
+ private
79
51
 
80
- executor.shutdown()
52
+ def process(msg)
53
+ unless msg.nil?
54
+ Writer.new(@writer_opts, msg).run!
55
+ msg.delete
56
+ end
81
57
  end
58
+
82
59
  end
83
60
  end
84
61
  end
@@ -1,5 +1,5 @@
1
1
  module Alephant
2
2
  module Publisher
3
- VERSION = "0.1.7"
3
+ VERSION = "0.1.8"
4
4
  end
5
5
  end
@@ -52,14 +52,8 @@ module Alephant
52
52
  end
53
53
 
54
54
  def write(id, r)
55
- begin
56
- seq_for(id).sequence(message) do
57
- store(id, r.render, location_for(id))
58
- end
59
- rescue Exception => e
60
- logger.warn "Alephant::Publisher::Writer#write: #{e.message}\n#{e.backtrace.join('\n')}"
61
-
62
- raise e
55
+ seq_for(id).sequence(message) do
56
+ store(id, r.render, location_for(id))
63
57
  end
64
58
  end
65
59
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-publisher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Integralist
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-21 00:00:00.000000000 Z
11
+ date: 2014-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -363,7 +363,6 @@ files:
363
363
  - alephant-publisher.gemspec
364
364
  - lib/alephant/env.rb
365
365
  - lib/alephant/publisher.rb
366
- - lib/alephant/publisher/publish_task.rb
367
366
  - lib/alephant/publisher/queue.rb
368
367
  - lib/alephant/publisher/render_mapper.rb
369
368
  - lib/alephant/publisher/version.rb
@@ -1,29 +0,0 @@
1
- require 'java'
2
-
3
- java_import 'java.util.concurrent.Callable'
4
-
5
- require 'alephant/publisher/writer'
6
-
7
- module Alephant
8
- module Publisher
9
- class PublishTask
10
- include Callable
11
-
12
- attr_reader :opts, :message
13
-
14
- def initialize(opts, message)
15
- @message = message
16
- @opts = opts
17
- end
18
-
19
- def call
20
- unless message.nil?
21
- Writer.new(opts, message).run!
22
- message.delete
23
- end
24
- end
25
-
26
- end
27
- end
28
- end
29
-