solid_queue_autoscaler 1.0.4 → 1.0.5

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: 34a00ec2fcaa967d5d9ccb7788380f40e411989940e31e685d53f35a2505c7d2
4
- data.tar.gz: 57c6f53c0c177283cce94bfc7c16916dbd98646567fda50e946c1805e343c408
3
+ metadata.gz: e3465a178ae32fa802b41eebff9cc3db372ce01a48c60b970d86e3b962a2c7e5
4
+ data.tar.gz: 29c4ab25bd35084109c5698ec432880932add84c49234d860ecb8ad6b652819c
5
5
  SHA512:
6
- metadata.gz: 57f8c7f0d6a7a3010b30b3224da0f265b88048fa41d63f9dfe7651e1a3c2eca6ad6b9adbd3da512218e35dbafdbbf39d8e97dfc0b20fa5ffb5245bba85ad19ea
7
- data.tar.gz: 4180ec88ddcf52bc708403b83257ea422e6880ac581be009493ba05d524cfe33c1d0dd423eaded9b8824484ec9d76a4094da7e9a0bf08bceaa1ad5e56b59108e
6
+ metadata.gz: 7642cfc1b8a185eabbc61c716a118c94c47218c0b253e6ef670bb02caf279eda561b3c1a4d7c96ee0e2af93a1a09e8121c3fdf47995515ee0fd60c07b89c161a
7
+ data.tar.gz: cf02eea35fc5c03b0229d1a3c3cdbc32ead6e3e4dfe175f0fabcde7dd235ebb63cfad8a4d7ed6ca7ddb833bf1e6b3264090052a3d2591ab88802d4aafbc7ca78
data/CHANGELOG.md CHANGED
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.5] - 2025-01-16
11
+
12
+ ### Added
13
+ - Auto-detect `SolidQueue::Record.connection` for multi-database setups
14
+ - No longer need to manually configure `database_connection` when using Solid Queue's separate database
15
+ - Connection priority: 1) explicit `database_connection`, 2) `SolidQueue::Record.connection`, 3) `ActiveRecord::Base.connection`
16
+
10
17
  ## [1.0.4] - 2025-01-16
11
18
 
12
19
  ### Fixed
data/README.md CHANGED
@@ -193,6 +193,7 @@ The Kubernetes adapter uses the official `kubeclient` gem and supports:
193
193
  | `dry_run` | Boolean | `false` | Log decisions without making changes |
194
194
  | `queues` | Array | `nil` | Queue names to monitor (nil = all queues) |
195
195
  | `table_prefix` | String | `'solid_queue_'` | Solid Queue table name prefix |
196
+ | `database_connection` | Connection | auto | Database connection (auto-detects `SolidQueue::Record.connection`) |
196
197
 
197
198
  ### Worker Limits
198
199
 
@@ -110,7 +110,7 @@ module SolidQueueAutoscaler
110
110
  # Queue filtering (nil = all queues)
111
111
  @queues = nil
112
112
 
113
- # Database connection (defaults to ActiveRecord::Base.connection)
113
+ # Database connection (auto-detects SolidQueue::Record.connection if available)
114
114
  @database_connection = nil
115
115
 
116
116
  # Solid Queue table prefix (default: 'solid_queue_')
@@ -181,8 +181,20 @@ module SolidQueueAutoscaler
181
181
  scale_down_cooldown_seconds || cooldown_seconds
182
182
  end
183
183
 
184
+ # Returns the database connection for querying Solid Queue tables.
185
+ # Priority order:
186
+ # 1. Explicitly configured database_connection
187
+ # 2. SolidQueue::Record.connection (for multi-database setups)
188
+ # 3. ActiveRecord::Base.connection (fallback)
184
189
  def connection
185
- database_connection || ActiveRecord::Base.connection
190
+ return database_connection if database_connection
191
+
192
+ # Auto-detect Solid Queue's connection for multi-database setups
193
+ if defined?(SolidQueue::Record) && SolidQueue::Record.respond_to?(:connection)
194
+ return SolidQueue::Record.connection
195
+ end
196
+
197
+ ActiveRecord::Base.connection
186
198
  end
187
199
 
188
200
  def dry_run?
@@ -203,6 +215,12 @@ module SolidQueueAutoscaler
203
215
 
204
216
  def connection_available?
205
217
  return true if database_connection
218
+
219
+ # Check Solid Queue connection first (for multi-database setups)
220
+ if defined?(SolidQueue::Record) && SolidQueue::Record.respond_to?(:connected?)
221
+ return SolidQueue::Record.connected?
222
+ end
223
+
206
224
  return false unless defined?(ActiveRecord::Base)
207
225
 
208
226
  ActiveRecord::Base.connected?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SolidQueueAutoscaler
4
- VERSION = '1.0.4'
4
+ VERSION = '1.0.5'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_queue_autoscaler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - reillyse