workhorse 1.1.0 → 1.2.3
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 +4 -4
- data/CHANGELOG.md +33 -1
- data/README.md +1 -1
- data/Rakefile +0 -1
- data/VERSION +1 -1
- data/lib/active_job/queue_adapters/workhorse_adapter.rb +2 -2
- data/lib/workhorse/daemon/shell_handler.rb +2 -2
- data/lib/workhorse/enqueuer.rb +10 -4
- data/lib/workhorse/performer.rb +1 -0
- data/lib/workhorse/worker.rb +2 -2
- data/workhorse.gemspec +3 -6
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93b228777ca0a882fb947c596c9a6a961126527f5aa595369ad11ea00b00b1f1
|
4
|
+
data.tar.gz: c0a9a1c4e9a5a2966c37cbefec09b6d672667eac93a77fb6776875fc0a49bf69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 :
|
45
|
+
add_column :jobs, :description, :string, after: :perform_at, null: true
|
14
46
|
end
|
15
47
|
end
|
16
48
|
```
|
data/README.md
CHANGED
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
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
|
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
|
data/lib/workhorse/enqueuer.rb
CHANGED
@@ -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
|
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
|
18
|
-
db_job = enqueue(
|
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
|
data/lib/workhorse/performer.rb
CHANGED
@@ -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
|
data/lib/workhorse/worker.rb
CHANGED
@@ -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(
|
17
|
-
worker = new(
|
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.
|
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.
|
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 = "
|
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.
|
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:
|
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
|