subserver 0.2.2 → 0.4.3

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: 4295d899353208c83176c64e8357e6d6d1618a55
4
- data.tar.gz: 95e1bb5f162351711be555a2ab70ee5c7a7b7bb2
3
+ metadata.gz: 15c004ce2d55c6836a1bed4bf035581a7b96377a
4
+ data.tar.gz: 77b9e1a2f36020ec3f878bd601362148525d911f
5
5
  SHA512:
6
- metadata.gz: 3ca18b4e225c79fd7b2f0d490697af02678bbe2ca0ae4efe081655d2f6144c442b9fbd760ff2b0756e738d52076b6af97ee0a7d50a9eeafeffe6080533449a30
7
- data.tar.gz: bfd2a798802e7810e1e82c188493224398e7109524a8d8decac574c7e12811b5fa6cf45378d4c0cfe48a6c83fa9046e625f35644f8f8edcf0c785cd3f62befcb
6
+ metadata.gz: 4ec89e5f29797283ad87b823306e1a68d2f99f08e821dd83bdd14819eda0d40c6ff84e1f3c77a6734c9e1e9a6f5beb562033b9e4eb539cdd271a1f872b62c903
7
+ data.tar.gz: 8d815574552d3e21bb50bded3060e115f4012f83ac5a7ae0a885236375beb2c83456940178365761f1ae1a3165c7bd5c6e1e8d1c038c91353c131aceefd968e1
@@ -1,2 +1,27 @@
1
- # 1.0.0
1
+ # 0.4.1
2
+ - Fix Listener#process_message error handling
3
+
4
+ # 0.4.0
5
+ - Adds listener_startup lifecycle event
6
+
7
+ # 0.3.0
8
+ - Adds Mocks for testing in applications
9
+
10
+ # 0.2.2
11
+ - Fix issue where multi-subscriber options were getting overridden
12
+
13
+ # 0.2.1
14
+ - Use Rails 5 reloader
15
+ - Fix ActiveRecord connection issues using ConnectionHandler
16
+ - Use Google's Default Enviroment Variables for fallback
17
+
18
+ # 0.2.0
19
+ - Adds PubSub connection testing
20
+ - Fixes a case where subserver would infinitly kill and respawn listeners
21
+ - Cleans up logger code
22
+
23
+ # 0.1.1
24
+ - Fixes connection handling
25
+
26
+ # 0.1.0
2
27
  - Initial Public Release
@@ -26,6 +26,7 @@ module Subserver
26
26
  death_handlers: [],
27
27
  lifecycle_events: {
28
28
  startup: [],
29
+ listener_startup: [],
29
30
  quiet: [],
30
31
  shutdown: [],
31
32
  heartbeat: [],
@@ -88,8 +88,8 @@ module Subserver
88
88
  end
89
89
  end
90
90
 
91
- # Before this point, the process is initializing with just the main thread.
92
- # Starting here the process will now have multiple threads running.
91
+ # Until this point, the process is initializing with just the main thread.
92
+ # After this point the process will have multiple threads running.
93
93
  fire_event(:startup, reverse: false, reraise: true)
94
94
 
95
95
  logger.debug { "Middleware: #{Subserver.middleware.map(&:klass).join(', ')}" }
@@ -34,7 +34,7 @@ module Subserver
34
34
  @thread = nil
35
35
  @reloader = Subserver.options[:reloader]
36
36
  @subscriber = subscriber
37
- @subscription = retrive_subscrption
37
+ @subscription = retrieve_subscription
38
38
  @logging = (mgr.options[:message_logger] || Subserver::MessageLogger).new
39
39
  end
40
40
 
@@ -69,7 +69,7 @@ module Subserver
69
69
 
70
70
  private unless $TESTING
71
71
 
72
- def retrive_subscrption
72
+ def retrieve_subscription
73
73
  subscription_name = @subscriber.get_subserver_options[:subscription]
74
74
  subscription = Pubsub.client.subscription subscription_name rescue nil
75
75
  if subscription.nil?
@@ -90,6 +90,8 @@ module Subserver
90
90
 
91
91
  def run
92
92
  begin
93
+ # This begins the listener process in a forked thread
94
+ fire_event(:listener_startup, reverse: false, reraise: true)
93
95
  connect_subscriber
94
96
  @pubsub_listener.start
95
97
  rescue Subserver::Shutdown
@@ -110,9 +112,12 @@ module Subserver
110
112
  rescue Subserver::Shutdown
111
113
  # Reject message if shutdown
112
114
  received_message.reject!
113
- rescue Exception => ex
114
- handle_exception(e, { context: "Exception raised during message processing.", message: received_message })
115
- raise e
115
+ rescue StandardError => error
116
+ handle_exception error, {
117
+ context: 'Exception raised during message processing.',
118
+ message: received_message
119
+ }
120
+ raise
116
121
  end
117
122
  end
118
123
 
@@ -121,4 +126,4 @@ module Subserver
121
126
  end
122
127
 
123
128
  end
124
- end
129
+ end
@@ -35,6 +35,7 @@ module Subserver
35
35
  @listeners = Set.new
36
36
 
37
37
  subscribers.each do |subscriber|
38
+ next if subscriber.auto_subscribe? && !subscriber.auto_subscribe
38
39
  @listeners << Listener.new(self, subscriber)
39
40
  end
40
41
 
@@ -6,6 +6,10 @@ module Subserver
6
6
  defined?(@client) ? @client : initialize_client
7
7
  end
8
8
 
9
+ def self.client=(client)
10
+ @client = client
11
+ end
12
+
9
13
  def self.initialize_client
10
14
  @client = Google::Cloud::Pubsub.new(
11
15
  project_id: options[:project_id] || ENV['PUBSUB_PROJECT_ID'],
@@ -17,4 +21,5 @@ module Subserver
17
21
  Subserver.options
18
22
  end
19
23
  end
20
- end
24
+ end
25
+
@@ -11,6 +11,9 @@ module Subserver
11
11
  end
12
12
 
13
13
  module ClassMethods
14
+ def auto_subscribe?
15
+ respond_to? :auto_subscribe
16
+ end
14
17
 
15
18
  def subserver_options(opts={})
16
19
  self.subserver_options_hash = get_subserver_options.merge(opts)
@@ -0,0 +1,11 @@
1
+ require 'subserver/testing/pubsub'
2
+
3
+ module Subserver
4
+ module Testing
5
+
6
+ def self.fake!
7
+ Subserver::Pubsub.client = Subserver::Testing::Pubsub.new
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ module Subserver
2
+ module Testing
3
+ class Pubsub
4
+
5
+ class Topic
6
+ def publish(data, attributes = {})
7
+ true
8
+ end
9
+ end
10
+
11
+ def topic(name)
12
+ Topic.new
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Subserver
3
- VERSION = "0.2.2"
3
+ VERSION = "0.4.3"
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.2
4
+ version: 0.4.3
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-19 00:00:00.000000000 Z
11
+ date: 2020-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-pubsub
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.31'
19
+ version: '1.7'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
22
  version: 0.31.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.31'
29
+ version: '1.7'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.31.0
@@ -57,6 +57,8 @@ files:
57
57
  - lib/subserver/pubsub.rb
58
58
  - lib/subserver/rails.rb
59
59
  - lib/subserver/subscriber.rb
60
+ - lib/subserver/testing.rb
61
+ - lib/subserver/testing/pubsub.rb
60
62
  - lib/subserver/util.rb
61
63
  - lib/subserver/version.rb
62
64
  homepage: https://github.com/lifechurch/subserver/
@@ -71,7 +73,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
73
  requirements:
72
74
  - - ">="
73
75
  - !ruby/object:Gem::Version
74
- version: 2.3.1
76
+ version: 2.4.7
75
77
  required_rubygems_version: !ruby/object:Gem::Requirement
76
78
  requirements:
77
79
  - - ">="
@@ -79,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
79
81
  version: '0'
80
82
  requirements: []
81
83
  rubyforge_project:
82
- rubygems_version: 2.5.2.3
84
+ rubygems_version: 2.6.14.4
83
85
  signing_key:
84
86
  specification_version: 4
85
87
  summary: Simple background server process for Google Pub/Sub.