subserver 0.2.0 → 0.2.1

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: 024346e0b4fd27cc57e916d853d39b08de68d29f
4
- data.tar.gz: d697e91f0fa56888c6a601fc58c66631fb64e61f
3
+ metadata.gz: 391f8405b0cd22e8f4aa640004133d2d73f52937
4
+ data.tar.gz: ed7f18529bd0c0d5aa297fc8bb9b0cc5ac271de5
5
5
  SHA512:
6
- metadata.gz: 0a3eaddf316cfe3910c59dde627db754e9f53941bf6614cf4e6fd2ce56f312dc1485eb1bcfef3af406fffd3ea6dcf6b10cc289be104a7ce138b9aa75e969392a
7
- data.tar.gz: 64b24f88d670664662b2ee7eea621d3ef3aa19d4c8e8ca6f84b4489c7140afad07c031adb59587a20af6a0c7ea9128c7d0c0d348cd844beaeb4df0a80c728bef
6
+ metadata.gz: 7bb3386a5cb879d6905caed2f65789a77ce7c3c673861bf0277563bea6b34204a7f4ce0803c14f4f44255a48dc0ccad2d4f9ffe475ac56e764cf45883ae3843a
7
+ data.tar.gz: ce1bfe6ba1fa69aeb424051c0932f019cd9284b885d36d76c5e25dc7fbf6b8d6c587d7f061bde9a715e28f210dbaa82a7bf3f16d62cd40fe3744a079268e38b4
@@ -102,8 +102,10 @@ module Subserver
102
102
  def process_message(received_message)
103
103
  begin
104
104
  logger.debug("Executing Middleware")
105
- Subserver.middleware.invoke(@subscriber, received_message) do
106
- execute_processor(@subscriber, received_message)
105
+ @reloader.call do
106
+ Subserver.middleware.invoke(@subscriber, received_message) do
107
+ execute(@subscriber, received_message)
108
+ end
107
109
  end
108
110
  rescue Subserver::Shutdown
109
111
  # Reject message if shutdown
@@ -114,48 +116,9 @@ module Subserver
114
116
  end
115
117
  end
116
118
 
117
- def execute_processor(subscriber, received_message)
119
+ def execute(subscriber, received_message)
118
120
  subscriber.new.perform(received_message)
119
121
  end
120
122
 
121
- # Ruby doesn't provide atomic counters out of the box so we'll
122
- # implement something simple ourselves.
123
- # https://bugs.ruby-lang.org/issues/14706
124
- class Counter
125
- def initialize
126
- @value = 0
127
- @lock = Mutex.new
128
- end
129
-
130
- def incr(amount=1)
131
- @lock.synchronize { @value = @value + amount }
132
- end
133
-
134
- def reset
135
- @lock.synchronize { val = @value; @value = 0; val }
136
- end
137
- end
138
-
139
- PROCESSED = Counter.new
140
- FAILURE = Counter.new
141
- # This is mutable global state but because each thread is storing
142
- # its own unique key/value, there's no thread-safety issue AFAIK.
143
- WORKER_STATE = {}
144
-
145
- def stats(job_hash, queue)
146
- tid = Subserver::Logging.tid
147
- WORKER_STATE[tid] = {:queue => queue, :payload => job_hash, :run_at => Time.now.to_i }
148
-
149
- begin
150
- yield
151
- rescue Exception
152
- FAILURE.incr
153
- raise
154
- ensure
155
- WORKER_STATE.delete(tid)
156
- PROCESSED.incr
157
- end
158
- end
159
-
160
123
  end
161
124
  end
@@ -14,7 +14,7 @@ module Subserver
14
14
  def call(*args)
15
15
  yield
16
16
  ensure
17
- ::ActiveRecord::Base.clear_active_connections!
17
+ ::ActiveRecord::ConnectionAdapters::ConnectionHandler.clear_active_connections!
18
18
  end
19
19
  end
20
20
  end
@@ -8,7 +8,7 @@ module Subserver
8
8
 
9
9
  def self.initialize_client
10
10
  @client = Google::Cloud::Pubsub.new(
11
- project_id: options[:project_id],
11
+ project_id: options[:project_id] || ENV['PUBSUB_PROJECT_ID'],
12
12
  credentials: ( File.expand_path(options[:credentials]) if options[:credentials] )
13
13
  )
14
14
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Subserver
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: subserver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Hill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-07 00:00:00.000000000 Z
11
+ date: 2018-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-pubsub