workhorse 1.2.7 → 1.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/VERSION +1 -1
- data/lib/generators/workhorse/templates/config/initializers/workhorse.rb +4 -0
- data/lib/workhorse/daemon/shell_handler.rb +8 -4
- data/lib/workhorse.rb +6 -0
- data/workhorse.gemspec +3 -3
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e82524a9a4ac0e41a41fe2a1947e3a9e1b58efc96f750f1dfa0ef5ebeeaad39
|
4
|
+
data.tar.gz: a31b41e50239da3e0b1bb416d2e5d1c649083ad7fc30b7b2747e4ec9bd877931
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bcf8c18e959ecfe4ea1db71b3e1cc59a88325b5d70be33220cfe4931f92fb982548514a0f47576f792a33659011a7956f6c0075544681f0f312816428c1f5f20
|
7
|
+
data.tar.gz: 557a630d4681f635bfde37da63838a900f6938b6a38f7b188e94a1c4c293972020e91a183dc173fbe02be4d08ddee9a868074c70d219af65a4a7408050211247
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
# Workhorse Changelog
|
2
2
|
|
3
|
+
## 1.2.8 - 2022-11-23
|
4
|
+
|
5
|
+
* Add configuration option `lock_shell_commands`. This defaults to `true` to
|
6
|
+
retain backwards compatibility and allows turning off file locking for shell
|
7
|
+
commands (e.g. for cases where the locking is done outside of workhorse like
|
8
|
+
in a wrapper script).
|
9
|
+
|
10
|
+
Sitrox reference: #106900.
|
11
|
+
|
3
12
|
## 1.2.7 - 2022-04-07
|
4
13
|
|
5
14
|
* Adapt exit status of shell handler to return with exit code `2` when a worker
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.8
|
@@ -12,6 +12,10 @@ Workhorse.setup do |config|
|
|
12
12
|
# ActiveRecord::Base.transaction(*args, &block)
|
13
13
|
# end
|
14
14
|
|
15
|
+
# Set this to false in order to disable file-based locking for the Workhorse
|
16
|
+
# shell handlers (all the commands such as 'start', 'stop', ...).
|
17
|
+
# config.lock_shell_commands = true
|
18
|
+
|
15
19
|
# Enable and configure this to specify a callback for handling worker
|
16
20
|
# exceptions:
|
17
21
|
#
|
@@ -6,9 +6,13 @@ module Workhorse
|
|
6
6
|
exit 99
|
7
7
|
end
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
if Workhorse.lock_shell_commands
|
10
|
+
lockfile_path = options.delete(:lockfile) || 'workhorse.lock'
|
11
|
+
lockfile = File.open(lockfile_path, 'a')
|
12
|
+
lockfile.flock(File::LOCK_EX || File::LOCK_NB)
|
13
|
+
else
|
14
|
+
lockfile = nil
|
15
|
+
end
|
12
16
|
|
13
17
|
daemon = Workhorse::Daemon.new(**options, &block)
|
14
18
|
|
@@ -40,7 +44,7 @@ module Workhorse
|
|
40
44
|
warn "#{e.message}\n#{e.backtrace.join("\n")}"
|
41
45
|
exit 99
|
42
46
|
ensure
|
43
|
-
lockfile
|
47
|
+
lockfile&.flock(File::LOCK_UN)
|
44
48
|
end
|
45
49
|
end
|
46
50
|
|
data/lib/workhorse.rb
CHANGED
@@ -31,6 +31,12 @@ module Workhorse
|
|
31
31
|
# ExceptionNotifier.notify_exception(exception)
|
32
32
|
end
|
33
33
|
|
34
|
+
# If set to `false`, shell handler (CLI) won't lock commands using a lockfile.
|
35
|
+
# You should generally only disable this if you are performing the locking
|
36
|
+
# yourself (e.g. in a wrapper script).
|
37
|
+
mattr_accessor :lock_shell_commands
|
38
|
+
self.lock_shell_commands = true
|
39
|
+
|
34
40
|
# If set to `true`, the defined `on_exception` will not be called when the
|
35
41
|
# poller encounters an exception and the worker has to be shut down. The
|
36
42
|
# exception will still be logged.
|
data/workhorse.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: workhorse 1.2.
|
2
|
+
# stub: workhorse 1.2.8 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "workhorse".freeze
|
6
|
-
s.version = "1.2.
|
6
|
+
s.version = "1.2.8"
|
7
7
|
|
8
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 = "2022-
|
11
|
+
s.date = "2022-11-23"
|
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/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/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
13
|
s.rubygems_version = "3.0.3".freeze
|
14
14
|
s.summary = "Multi-threaded job backend with database queuing for ruby.".freeze
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workhorse
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sitrox
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -178,8 +178,8 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
|
-
description:
|
182
|
-
email:
|
181
|
+
description:
|
182
|
+
email:
|
183
183
|
executables: []
|
184
184
|
extensions: []
|
185
185
|
extra_rdoc_files: []
|
@@ -227,10 +227,10 @@ files:
|
|
227
227
|
- test/workhorse/pool_test.rb
|
228
228
|
- test/workhorse/worker_test.rb
|
229
229
|
- workhorse.gemspec
|
230
|
-
homepage:
|
230
|
+
homepage:
|
231
231
|
licenses: []
|
232
232
|
metadata: {}
|
233
|
-
post_install_message:
|
233
|
+
post_install_message:
|
234
234
|
rdoc_options: []
|
235
235
|
require_paths:
|
236
236
|
- lib
|
@@ -245,8 +245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
- !ruby/object:Gem::Version
|
246
246
|
version: '0'
|
247
247
|
requirements: []
|
248
|
-
rubygems_version: 3.
|
249
|
-
signing_key:
|
248
|
+
rubygems_version: 3.3.11
|
249
|
+
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: Multi-threaded job backend with database queuing for ruby.
|
252
252
|
test_files:
|