subserver 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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