workhorse 1.1.0 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0994338972770f1cb6f44db74a01c54c7ebdb9aa88afd1e9938a1565997edc8
4
- data.tar.gz: f48f3df959cca6b69a84f77a501989b6430cc04582e56345a7441af4258f62c0
3
+ metadata.gz: 93b228777ca0a882fb947c596c9a6a961126527f5aa595369ad11ea00b00b1f1
4
+ data.tar.gz: c0a9a1c4e9a5a2966c37cbefec09b6d672667eac93a77fb6776875fc0a49bf69
5
5
  SHA512:
6
- metadata.gz: 2631da0ac85ffb054b9705cee07174a56c56d4b773fcd25b341ece72a6e92244eb10fb88f7748dfd905fb5d01f8fd17b64425b1d479b71b40ca850af607d6581
7
- data.tar.gz: a4ac3e1f039fc3884e2ef0a066ff2d152b351d87926139a3098fba81ab7bedb8dd80c783e57ea0de79a6187296feee1aea73949207d0f8631af9b4415ab8cb68
6
+ metadata.gz: ca3d24bcad02360518f164fcdad08850f4cb3ac9d7f4617005a2a7c679d0916a6b8b58f46377320013e94606b08d181d121ddbca54293290264aa6b44fd6a651
7
+ data.tar.gz: f9b00bba4af33ee685185dee998384d0e5b158db951ef9eed4bf632f681c2fb9b2fcb253f09e40a0816b6ed5728aaf5454c0cae3badec3252c2ae15634f4a990
data/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Workhorse Changelog
2
2
 
3
+ ## 1.2.3 - 2021-02-09
4
+
5
+ * Fix warning with ruby 2.7
6
+
7
+ ## 1.2.2 - 2021-01-27
8
+
9
+ * Remove unused gem dependency to `schemacop`
10
+
11
+ ## 1.2.1 - 2021-01-27
12
+
13
+ * Log job description (if given) when performing job
14
+
15
+ ## 1.2.0 - 2021-01-27
16
+
17
+ * `Workhorse.enqueue_active_job`
18
+ * Change `perform_at` to a keyword arument
19
+ * Allow passing `:description` and `:queue`
20
+
21
+ Note that when upgrading, change:
22
+
23
+ ```ruby
24
+ # From
25
+ Workhorse.enqueue_active_job MyJob, 5.minutes.from_now
26
+
27
+ # To
28
+ Workhorse.enqueue_active_job MyJob, perform_at: 5.minutes.from_now
29
+ ```
30
+
31
+ ## 1.1.1 - 2021-01-19
32
+
33
+ * Remove deprecation warnings with Ruby 2.7
34
+
3
35
  ## 1.1.0 - 2020-12-24
4
36
 
5
37
  * Add `description` column to `DbJob`.
@@ -10,7 +42,7 @@ to your `DbJob` table, e.g. with such a migration:
10
42
  ```ruby
11
43
  class AddDescriptionToWorkhorseDbJobs < ActiveRecord::Migration[6.0]
12
44
  def change
13
- add_column :db_jobs, :description, :string, after: :perform_at, null: true
45
+ add_column :jobs, :description, :string, after: :perform_at, null: true
14
46
  end
15
47
  end
16
48
  ```
data/README.md CHANGED
@@ -421,4 +421,4 @@ Please consult the [FAQ](FAQ.md).
421
421
 
422
422
  ## Copyright
423
423
 
424
- Copyright © 2020 Sitrox. See `LICENSE` for further details.
424
+ Copyright © 2021 Sitrox. See `LICENSE` for further details.
data/Rakefile CHANGED
@@ -22,7 +22,6 @@ task :gemspec do
22
22
  spec.add_development_dependency 'pry'
23
23
  spec.add_dependency 'activesupport'
24
24
  spec.add_dependency 'activerecord'
25
- spec.add_dependency 'schemacop', '~> 2.0'
26
25
  spec.add_dependency 'concurrent-ruby'
27
26
  end
28
27
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.3
@@ -14,8 +14,8 @@ module ActiveJob
14
14
  Workhorse.enqueue_active_job(job)
15
15
  end
16
16
 
17
- def enqueue_at(job, timestamp) #:nodoc:
18
- Workhorse.enqueue_active_job(job, timestamp)
17
+ def enqueue_at(job, timestamp = Time.now) #:nodoc:
18
+ Workhorse.enqueue_active_job(job, perform_at: timestamp)
19
19
  end
20
20
  end
21
21
  end
@@ -1,6 +1,6 @@
1
1
  module Workhorse
2
2
  class Daemon::ShellHandler
3
- def self.run(options = {}, &block)
3
+ def self.run(**options, &block)
4
4
  unless ARGV.count == 1
5
5
  usage
6
6
  exit 99
@@ -10,7 +10,7 @@ module Workhorse
10
10
  lockfile = File.open(lockfile_path, 'a')
11
11
  lockfile.flock(File::LOCK_EX || File::LOCK_NB)
12
12
 
13
- daemon = Workhorse::Daemon.new(options, &block)
13
+ daemon = Workhorse::Daemon.new(**options, &block)
14
14
 
15
15
  begin
16
16
  case ARGV.first
@@ -12,10 +12,16 @@ module Workhorse
12
12
  end
13
13
 
14
14
  # Enqueue an ActiveJob job
15
- def enqueue_active_job(job, perform_at = Time.now)
15
+ def enqueue_active_job(job, perform_at: Time.now, queue: nil, description: nil)
16
16
  wrapper_job = Jobs::RunActiveJob.new(job.serialize)
17
- queue = job.queue_name.blank? ? nil : job.queue_name
18
- db_job = enqueue(wrapper_job, queue: queue, priority: job.priority || 0, perform_at: Time.at(perform_at))
17
+ queue ||= job.queue_name if job.queue_name.present?
18
+ db_job = enqueue(
19
+ wrapper_job,
20
+ queue: queue,
21
+ priority: job.priority || 0,
22
+ perform_at: Time.at(perform_at),
23
+ description: description
24
+ )
19
25
  job.provider_job_id = db_job.id
20
26
  return db_job
21
27
  end
@@ -36,7 +42,7 @@ module Workhorse
36
42
  end
37
43
 
38
44
  job = Workhorse::Jobs::RunRailsOp.new(cls, op_args)
39
- enqueue job, workhorse_args
45
+ enqueue job, **workhorse_args
40
46
  end
41
47
  end
42
48
  end
@@ -59,6 +59,7 @@ module Workhorse
59
59
  # Deserialize and perform job
60
60
  # ---------------------------------------------------------------
61
61
  log 'Performing', :info
62
+ log "Description: #{@db_job.description}", :info unless @db_job.description.blank?
62
63
 
63
64
  if Workhorse.perform_jobs_in_tx
64
65
  Workhorse.tx_callback.call do
@@ -13,8 +13,8 @@ module Workhorse
13
13
 
14
14
  # Instantiates and starts a new worker with the given arguments and then
15
15
  # waits for its completion (i.e. an interrupt).
16
- def self.start_and_wait(*args)
17
- worker = new(*args)
16
+ def self.start_and_wait(**args)
17
+ worker = new(**args)
18
18
  worker.start
19
19
  worker.wait
20
20
  end
data/workhorse.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: workhorse 1.1.0 ruby lib
2
+ # stub: workhorse 1.2.3 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "workhorse".freeze
6
- s.version = "1.1.0"
6
+ s.version = "1.2.3"
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 = "2020-12-24"
11
+ s.date = "2021-02-09"
12
12
  s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.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
@@ -29,7 +29,6 @@ Gem::Specification.new do |s|
29
29
  s.add_development_dependency(%q<pry>.freeze, [">= 0"])
30
30
  s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
31
31
  s.add_runtime_dependency(%q<activerecord>.freeze, [">= 0"])
32
- s.add_runtime_dependency(%q<schemacop>.freeze, ["~> 2.0"])
33
32
  s.add_runtime_dependency(%q<concurrent-ruby>.freeze, [">= 0"])
34
33
  else
35
34
  s.add_dependency(%q<bundler>.freeze, [">= 0"])
@@ -43,7 +42,6 @@ Gem::Specification.new do |s|
43
42
  s.add_dependency(%q<pry>.freeze, [">= 0"])
44
43
  s.add_dependency(%q<activesupport>.freeze, [">= 0"])
45
44
  s.add_dependency(%q<activerecord>.freeze, [">= 0"])
46
- s.add_dependency(%q<schemacop>.freeze, ["~> 2.0"])
47
45
  s.add_dependency(%q<concurrent-ruby>.freeze, [">= 0"])
48
46
  end
49
47
  else
@@ -58,7 +56,6 @@ Gem::Specification.new do |s|
58
56
  s.add_dependency(%q<pry>.freeze, [">= 0"])
59
57
  s.add_dependency(%q<activesupport>.freeze, [">= 0"])
60
58
  s.add_dependency(%q<activerecord>.freeze, [">= 0"])
61
- s.add_dependency(%q<schemacop>.freeze, ["~> 2.0"])
62
59
  s.add_dependency(%q<concurrent-ruby>.freeze, [">= 0"])
63
60
  end
64
61
  end
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.1.0
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sitrox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-24 00:00:00.000000000 Z
11
+ date: 2021-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -164,20 +164,6 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: schemacop
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '2.0'
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '2.0'
181
167
  - !ruby/object:Gem::Dependency
182
168
  name: concurrent-ruby
183
169
  requirement: !ruby/object:Gem::Requirement