workhorse 1.2.14 → 1.2.15

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: 0a1665e70227e5e6fad1115523a94c7457a9b9b7216e10d2092c0326817bfd44
4
- data.tar.gz: f6a1d79bf0f55a8f2756934bb58ab3aefb83ef6369ffec7c783ef8cd6dfa50b0
3
+ metadata.gz: 772b634a73940718f57f2363859977dbc7f20ff4b7c12edada5c4cc499ff5f6c
4
+ data.tar.gz: 8c44df6872578300e6577155626f851ae1cb9202653f835b4dabbcc70fd78c70
5
5
  SHA512:
6
- metadata.gz: 8dde03d8f2a8f5c05307787433ef308c99c34ad2ab59d7c2edcc352c0428241a48ee5d0356f4a9a35a0de7dac876d60e1c09cd3c016915929f786a387a9e75e6
7
- data.tar.gz: b380dff403c8c10df7c2472422e462d66d40bff3796cbee09e81c63c11eafe4ba4a0d0dd361828f5a984f738fe30744b6fcea3616b6a54a9d1f7df016b21219f
6
+ metadata.gz: 751c63f5b1d86238d3e403332972ea0d177ee6c92acab793f3477d9c68f8223d755c633140e2622c2979b404f369327b6e507303f0d2532e1bcb408edf4a02f6
7
+ data.tar.gz: e5209a6b1472239ce48734eb99d0a1c7cfcd9c20d800c6bb5bb77dff001f84ce7b362b444d0d2d3b0ae2b92b035f75d59484df5dc9d4111c7816ad10aa1b17ef
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Workhorse Changelog
2
2
 
3
+ ## 1.2.15 - 2023-08-28
4
+
5
+ * Add capability to skip transactions for enqueued RailsOps operations.
6
+
3
7
  ## 1.2.14 - 2023-08-23
4
8
 
5
9
  * Add documentation for transaction handling.
data/README.md CHANGED
@@ -303,8 +303,8 @@ You can turn off transaction wrapping in the following ways:
303
303
  up their own transaction(s) or jobs that explicitly do not need a transaction
304
304
  for whatever reason.
305
305
 
306
- Usage of this feature depends on whether you are dealing with an ActiveJob job
307
- or a plain Workhorse job class.
306
+ Usage of this feature depends on whether you are dealing with an ActiveJob
307
+ job, an enqueued RailsOps operation or a plain Workhorse job class.
308
308
 
309
309
  For ActiveJob:
310
310
 
@@ -329,6 +329,29 @@ You can turn off transaction wrapping in the following ways:
329
329
  end
330
330
  ```
331
331
 
332
+ For enqueuable RailsOps operations:
333
+
334
+ 1. Add the following static method to your operation class:
335
+
336
+ ```ruby
337
+ class MyOp < RailsOps::Operation
338
+ def self.skip_tx?
339
+ true
340
+ end
341
+ end
342
+ ```
343
+
344
+ For plain Workhrose job clases:
345
+
346
+ 1. Add the following static method to your job class:
347
+
348
+ ```ruby
349
+ class MyJob
350
+ def self.skip_tx?
351
+ true
352
+ end
353
+ end
354
+
332
355
  ## Exception handling
333
356
 
334
357
  Per default, exceptions occurring in a worker thread will only be visible in the
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.14
1
+ 1.2.15
@@ -5,6 +5,10 @@ module Workhorse::Jobs
5
5
  @params = params
6
6
  end
7
7
 
8
+ def job_class
9
+ @cls
10
+ end
11
+
8
12
  def perform
9
13
  @cls.run!(@params)
10
14
  end
@@ -111,8 +111,8 @@ module Workhorse
111
111
  'connection properly. On MySQL, use "show processlist;" to see which connection(s) ' \
112
112
  'is / are holding the lock for a long period of time and consider killing them using '\
113
113
  "MySQL's \"kill <Id>\" command. This message will be issued only once per worker " \
114
- "and may only be re-triggered if the error happens again *after* the lock has " \
115
- "been solved in the meantime."
114
+ 'and may only be re-triggered if the error happens again *after* the lock has ' \
115
+ 'been solved in the meantime.'
116
116
 
117
117
  worker.log message
118
118
  exception = StandardError.new(message)
data/workhorse.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: workhorse 1.2.14 ruby lib
2
+ # stub: workhorse 1.2.15 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "workhorse".freeze
6
- s.version = "1.2.14"
6
+ s.version = "1.2.15"
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 = "2023-08-23"
11
+ s.date = "2023-08-28"
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/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.14
4
+ version: 1.2.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-23 00:00:00.000000000 Z
11
+ date: 2023-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -246,7 +246,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
246
  - !ruby/object:Gem::Version
247
247
  version: '0'
248
248
  requirements: []
249
- rubygems_version: 3.4.10
249
+ rubygems_version: 3.4.6
250
250
  signing_key:
251
251
  specification_version: 4
252
252
  summary: Multi-threaded job backend with database queuing for ruby.