workhorse 1.4.0.rc0 → 1.4.0

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: 66d11e1801fa64ed11dbb329dd843eef6436cdd2d999abf5786ffa013f768dbe
4
- data.tar.gz: d03c50b4d34f32492386ec8c20ba065ad862e7bf9e1c90b03e0641f1f0b8b4db
3
+ metadata.gz: dd78ce0b033690529240d1111c8545ab78dfd753fbe7fee551313b2a7d33fc26
4
+ data.tar.gz: 9e7e22992ed727f60882f448f0003318cd40142402590cf199812d461db58378
5
5
  SHA512:
6
- metadata.gz: a3fa8b847ca0d0e68112a4f5c59c34fd24955010185bd5a4c712571e0e1dd8e3340156873bd7dc61f1e1186b04d4bda9cb9d3bfdad036209e760390a43e6a127
7
- data.tar.gz: ad309e55cfb166fcd95b907f75cf2a07009b8d2c49335256505a6e0f54172b44375fd7182b972806601bbd32df43b9431977367fcafe24400ae5769658a30a06
6
+ metadata.gz: e5d6560a8a6ef01c555222568eb0af6ad44c09484cfeee05093c3ad966e19ebe80f0d6754b85dccab869bb98ef279aede2dbc39da5f7a38b2b1d3eef054136f4
7
+ data.tar.gz: 2422ef7003b9dc3e3e3409a794afc57a4ae33226366292dadc89e4afe823289e2aa27c45f5c7b0586262344115d8ca1839b7e84d15980c5a69099c26f3c3c599
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Workhorse Changelog
2
2
 
3
+ ## 1.4.0 - 2026-02-12
4
+
5
+ * Stable release based on previous RC release.
6
+
3
7
  ## 1.4.0.rc0 - 2026-02-11
4
8
 
5
9
  * Add `soft-restart` daemon command for graceful worker restarts. Sends a
data/Rakefile CHANGED
@@ -6,6 +6,8 @@ task :gemspec do
6
6
  spec.summary = %(
7
7
  Multi-threaded job backend with database queuing for ruby.
8
8
  )
9
+ spec.license = 'MIT'
10
+ spec.homepage = 'https://github.com/sitrox/workhorse'
9
11
  spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
10
12
  spec.executables = []
11
13
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0.rc0
1
+ 1.4.0
@@ -342,12 +342,10 @@ module Workhorse
342
342
 
343
343
  # Monitor in a separate thread to avoid blocking the signal handler
344
344
  @soft_restart_thread = Thread.new do
345
- begin
346
- wait_for_idle_then_shutdown
347
- rescue Exception => e
348
- log %(Soft restart error: #{e.message}\n#{e.backtrace.join("\n")}), :error
349
- Workhorse.on_exception.call(e)
350
- end
345
+ wait_for_idle_then_shutdown
346
+ rescue Exception => e
347
+ log %(Soft restart error: #{e.message}\n#{e.backtrace.join("\n")}), :error
348
+ Workhorse.on_exception.call(e)
351
349
  end
352
350
  end
353
351
 
@@ -360,15 +358,13 @@ module Workhorse
360
358
  # Start a new thread as certain functionality (such as logging) is not
361
359
  # available from within a trap context.
362
360
  Thread.new do
363
- begin
364
- log "\nCaught #{SOFT_RESTART_SIGNAL}, initiating soft restart..."
365
- soft_restart
366
- rescue Exception => e
367
- log %(Soft restart signal handler error: #{e.message}\n#{e.backtrace.join("\n")}), :error
368
- Workhorse.on_exception.call(e)
369
- end
361
+ log "\nCaught #{SOFT_RESTART_SIGNAL}, initiating soft restart..."
362
+ soft_restart
363
+ rescue Exception => e
364
+ log %(Soft restart signal handler error: #{e.message}\n#{e.backtrace.join("\n")}), :error
365
+ Workhorse.on_exception.call(e)
370
366
  end
371
- # Note: Unlike trap_termination, we don't join here because soft_restart
367
+ # NOTE: Unlike trap_termination, we don't join here because soft_restart
372
368
  # is designed to be fire-and-forget (it spawns its own monitoring thread).
373
369
  end
374
370
  end
data/workhorse.gemspec CHANGED
@@ -1,15 +1,17 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: workhorse 1.4.0.rc0 ruby lib
2
+ # stub: workhorse 1.4.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "workhorse".freeze
6
- s.version = "1.4.0.rc0"
6
+ s.version = "1.4.0"
7
7
 
8
- s.required_rubygems_version = Gem::Requirement.new("> 1.3.1".freeze) if s.respond_to? :required_rubygems_version=
8
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Sitrox".freeze]
11
- s.date = "2026-02-11"
11
+ s.date = "2026-02-12"
12
12
  s.files = [".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, "CHANGELOG.md".freeze, "FAQ.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/rubocop".freeze, "lib/active_job/queue_adapters/workhorse_adapter.rb".freeze, "lib/generators/workhorse/install_generator.rb".freeze, "lib/generators/workhorse/templates/bin/workhorse.rb".freeze, "lib/generators/workhorse/templates/config/initializers/workhorse.rb".freeze, "lib/generators/workhorse/templates/create_table_jobs.rb".freeze, "lib/workhorse.rb".freeze, "lib/workhorse/active_job_extension.rb".freeze, "lib/workhorse/daemon.rb".freeze, "lib/workhorse/daemon/shell_handler.rb".freeze, "lib/workhorse/db_job.rb".freeze, "lib/workhorse/enqueuer.rb".freeze, "lib/workhorse/jobs/cleanup_succeeded_jobs.rb".freeze, "lib/workhorse/jobs/detect_stale_jobs_job.rb".freeze, "lib/workhorse/jobs/run_active_job.rb".freeze, "lib/workhorse/jobs/run_rails_op.rb".freeze, "lib/workhorse/performer.rb".freeze, "lib/workhorse/poller.rb".freeze, "lib/workhorse/pool.rb".freeze, "lib/workhorse/scoped_env.rb".freeze, "lib/workhorse/worker.rb".freeze, "test/active_job/queue_adapters/workhorse_adapter_test.rb".freeze, "test/lib/db_schema.rb".freeze, "test/lib/jobs.rb".freeze, "test/lib/test_helper.rb".freeze, "test/workhorse/daemon_test.rb".freeze, "test/workhorse/db_job_test.rb".freeze, "test/workhorse/enqueuer_test.rb".freeze, "test/workhorse/performer_test.rb".freeze, "test/workhorse/poller_test.rb".freeze, "test/workhorse/pool_test.rb".freeze, "test/workhorse/worker_test.rb".freeze, "workhorse.gemspec".freeze]
13
+ s.homepage = "https://github.com/sitrox/workhorse".freeze
14
+ s.licenses = ["MIT".freeze]
13
15
  s.rubygems_version = "3.4.6".freeze
14
16
  s.summary = "Multi-threaded job backend with database queuing for ruby.".freeze
15
17
  s.test_files = ["test/active_job/queue_adapters/workhorse_adapter_test.rb".freeze, "test/lib/db_schema.rb".freeze, "test/lib/jobs.rb".freeze, "test/lib/test_helper.rb".freeze, "test/workhorse/daemon_test.rb".freeze, "test/workhorse/db_job_test.rb".freeze, "test/workhorse/enqueuer_test.rb".freeze, "test/workhorse/performer_test.rb".freeze, "test/workhorse/poller_test.rb".freeze, "test/workhorse/pool_test.rb".freeze, "test/workhorse/worker_test.rb".freeze]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: workhorse
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.rc0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-02-11 00:00:00.000000000 Z
10
+ date: 2026-02-12 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport
@@ -100,7 +100,9 @@ files:
100
100
  - test/workhorse/pool_test.rb
101
101
  - test/workhorse/worker_test.rb
102
102
  - workhorse.gemspec
103
- licenses: []
103
+ homepage: https://github.com/sitrox/workhorse
104
+ licenses:
105
+ - MIT
104
106
  metadata: {}
105
107
  rdoc_options: []
106
108
  require_paths:
@@ -112,9 +114,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
114
  version: '0'
113
115
  required_rubygems_version: !ruby/object:Gem::Requirement
114
116
  requirements:
115
- - - ">"
117
+ - - ">="
116
118
  - !ruby/object:Gem::Version
117
- version: 1.3.1
119
+ version: '0'
118
120
  requirements: []
119
121
  rubygems_version: 4.0.2
120
122
  specification_version: 4