pgbus 0.1.7 → 0.1.9

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
  SHA256:
3
- metadata.gz: 38d33f96cb4a6aa5255b33951818a1a975168d5d40b2b9bc391d8967e00e9854
4
- data.tar.gz: 3c5dae7b2e4f31c63b81b1f11a4d6b96239f8bb5b7589a4465ae0a0834f88f8c
3
+ metadata.gz: b1e18f777c6b6f2dbc0f927994e19587a489f0551be9f5e228c4d47b3f346fa0
4
+ data.tar.gz: 433faca464a6f881a21cbcf950c3238cdd34e1e11fac0108a320dd98e23dfae1
5
5
  SHA512:
6
- metadata.gz: 97330cb59c83f37706c2a1ae5b6ce3c309ab4113287b92e077b34de05242d1fa65b4b0eda488fdc050e5bf0fb896eca0837986f85f3781dbaf0c6ff9ea3248b3
7
- data.tar.gz: ea013b795cf6b677373a1ecf161c7b85633d18f2abf95e0155d2bb870fa0f6f222c499511392d21c9ea9b1ee9ade9862a561d12e38c975f58873ed1abe0f0d13
6
+ metadata.gz: 89418720dfb7433c1716cff8e238e74fee2be4c04a8023a4c2dc3b67fdf393b9ddb9f7c4df70b435a6cdcc9a3668c1c24e78bedce83c0c22d93d196ab1ee1574
7
+ data.tar.gz: b10d5f71b80c97e42573b2b034c0c1b4444342d6e729fef0fd0e8a97dba269eb35cdca8fc4bfcb4446dd17e630683859c1b5d0043467218baf15b72b05fb3e38
data/lib/pgbus/client.rb CHANGED
@@ -42,6 +42,12 @@ module Pgbus
42
42
  "PGMQ schema is not available (#{e.message}). Run `rails db:migrate` for the pgbus database."
43
43
  end
44
44
 
45
+ def ensure_all_queues
46
+ queue_names = collect_configured_queues
47
+ Pgbus.logger.info { "[Pgbus] Bootstrapping #{queue_names.size} queue(s): #{queue_names.join(", ")}" }
48
+ queue_names.each { |name| ensure_queue(name) }
49
+ end
50
+
45
51
  def ensure_dead_letter_queue(name)
46
52
  dlq_name = config.dead_letter_queue_name(name)
47
53
  return if @queues_created[dlq_name]
@@ -228,6 +234,26 @@ module Pgbus
228
234
 
229
235
  private
230
236
 
237
+ def collect_configured_queues
238
+ queues = Set.new
239
+ queues << config.default_queue
240
+
241
+ # Queues from worker configs
242
+ (config.workers || []).each do |w|
243
+ worker_queues = w[:queues] || w["queues"] || [config.default_queue]
244
+ worker_queues.each { |q| queues << q unless q == "*" }
245
+ end
246
+
247
+ # Queues from recurring tasks
248
+ (config.recurring_tasks || {}).each_value do |opts|
249
+ opts = opts.transform_keys(&:to_s) if opts.is_a?(Hash)
250
+ queue = opts["queue"] || opts[:queue]
251
+ queues << queue if queue
252
+ end
253
+
254
+ queues.to_a
255
+ end
256
+
231
257
  def ensure_single_queue(full_name)
232
258
  return if @queues_created[full_name]
233
259
 
@@ -70,6 +70,7 @@ module Pgbus
70
70
  restore_signals
71
71
  setup_child_process
72
72
  load_rails_app
73
+ bootstrap_queues
73
74
  worker = Worker.new(
74
75
  queues: queues, threads: threads, config: config,
75
76
  single_active_consumer: single_active, consumer_priority: priority
@@ -121,6 +122,7 @@ module Pgbus
121
122
  setup_child_process
122
123
  load_rails_app
123
124
  load_recurring_config
125
+ bootstrap_queues
124
126
  scheduler = Recurring::Scheduler.new(config: config)
125
127
  scheduler.run
126
128
  end
@@ -280,6 +282,12 @@ module Pgbus
280
282
  end
281
283
  end
282
284
 
285
+ def bootstrap_queues
286
+ Pgbus.client.ensure_all_queues
287
+ rescue StandardError => e
288
+ Pgbus.logger.error { "[Pgbus] Failed to bootstrap queues: #{e.message}" }
289
+ end
290
+
283
291
  def load_rails_app
284
292
  return unless defined?(Rails)
285
293
 
data/lib/pgbus/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pgbus
4
- VERSION = "0.1.7"
4
+ VERSION = "0.1.9"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgbus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson