job-iteration 0.9.6 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +7 -0
- data/.travis.yml +4 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +3 -3
- data/Rakefile +1 -1
- data/gemfiles/activejob_5_2.gemfile +5 -0
- data/gemfiles/activejob_edge.gemfile +6 -0
- data/job-iteration.gemspec +8 -5
- data/lib/job-iteration/csv_enumerator.rb +1 -1
- data/lib/job-iteration/iteration.rb +7 -7
- data/lib/job-iteration/version.rb +1 -1
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: ffc9f695ffad79aa7c097581241e0da79c0e7da09e0ab45094135720ac751b84
|
4
|
+
data.tar.gz: 1804b93cec0989965f43bb6dcefd62a46873878605ad6e6918c0d6305f69e016
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a58d74621a3f94bdcb22c2cbc097c4700f8ade5cf4b20b7b3307ae802c43f888276b63b85b633cf8e40116432a1f9c8d1c9adee363c355abf86142a8385d3ba
|
7
|
+
data.tar.gz: ef8e11855bdafba6ec0c35da341775fd14c4caeb2a708f35f5c2f7f04d14ed4f93d5595e07b65d5e47ef08a492f4ffaa30145f5f5968e1ae8feab3bd609ff4ab
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
data/job-iteration.gemspec
CHANGED
@@ -15,16 +15,19 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.homepage = "https://github.com/shopify/job-iteration"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
18
|
-
spec.files =
|
18
|
+
spec.files = %x(git ls-files -z).split("\x0").reject do |f|
|
19
19
|
f.match(%r{^(test|spec|features)/})
|
20
20
|
end
|
21
21
|
spec.bindir = "exe"
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = %w(lib)
|
24
24
|
|
25
|
-
spec.
|
25
|
+
spec.metadata["changelog_uri"] = "https://github.com/Shopify/job-iteration/blob/master/CHANGELOG.md"
|
26
26
|
|
27
|
-
spec.
|
28
|
-
|
29
|
-
spec.add_development_dependency
|
27
|
+
spec.add_dependency("activejob", ">= 5.2")
|
28
|
+
|
29
|
+
spec.add_development_dependency("bundler", "~> 1.16")
|
30
|
+
spec.add_development_dependency("rake", "~> 10.0")
|
31
|
+
spec.add_development_dependency("minitest", "~> 5.0")
|
32
|
+
spec.add_development_dependency("activerecord")
|
30
33
|
end
|
@@ -94,15 +94,15 @@ module JobIteration
|
|
94
94
|
end
|
95
95
|
|
96
96
|
unless enumerator
|
97
|
-
logger.info
|
98
|
-
"Skipping the job."
|
97
|
+
logger.info("[JobIteration::Iteration] `build_enumerator` returned nil. " \
|
98
|
+
"Skipping the job.")
|
99
99
|
return
|
100
100
|
end
|
101
101
|
|
102
102
|
assert_enumerator!(enumerator)
|
103
103
|
|
104
104
|
if executions == 1 && times_interrupted == 0
|
105
|
-
run_callbacks
|
105
|
+
run_callbacks(:start)
|
106
106
|
else
|
107
107
|
ActiveSupport::Notifications.instrument("resumed.iteration", iteration_instrumentation_tags)
|
108
108
|
end
|
@@ -111,10 +111,10 @@ module JobIteration
|
|
111
111
|
iterate_with_enumerator(enumerator, arguments)
|
112
112
|
end
|
113
113
|
|
114
|
-
run_callbacks
|
114
|
+
run_callbacks(:shutdown)
|
115
115
|
|
116
116
|
if run_complete_callbacks?(completed)
|
117
|
-
run_callbacks
|
117
|
+
run_callbacks(:complete)
|
118
118
|
output_interrupt_summary
|
119
119
|
end
|
120
120
|
end
|
@@ -144,7 +144,7 @@ module JobIteration
|
|
144
144
|
|
145
145
|
def reenqueue_iteration_job
|
146
146
|
ActiveSupport::Notifications.instrument("interrupted.iteration", iteration_instrumentation_tags)
|
147
|
-
logger.info
|
147
|
+
logger.info("[JobIteration::Iteration] Interrupting and re-enqueueing the job cursor_position=#{cursor_position}")
|
148
148
|
|
149
149
|
adjust_total_time
|
150
150
|
self.times_interrupted += 1
|
@@ -194,7 +194,7 @@ module JobIteration
|
|
194
194
|
adjust_total_time
|
195
195
|
|
196
196
|
message = "[JobIteration::Iteration] Completed iterating. times_interrupted=%d total_time=%.3f"
|
197
|
-
logger.info
|
197
|
+
logger.info(Kernel.format(message, times_interrupted, total_time))
|
198
198
|
end
|
199
199
|
|
200
200
|
def job_should_exit?
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: job-iteration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-11-
|
11
|
+
date: 2018-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activejob
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '5.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '5.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '5.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activerecord
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: Makes your background jobs interruptible and resumable.
|
70
84
|
email:
|
71
85
|
- ops-accounts+shipit@shopify.com
|
@@ -77,6 +91,7 @@ files:
|
|
77
91
|
- ".rubocop.yml"
|
78
92
|
- ".travis.yml"
|
79
93
|
- ".yardopts"
|
94
|
+
- CHANGELOG.md
|
80
95
|
- CODE_OF_CONDUCT.md
|
81
96
|
- Gemfile
|
82
97
|
- Gemfile.lock
|
@@ -85,6 +100,8 @@ files:
|
|
85
100
|
- Rakefile
|
86
101
|
- bin/setup
|
87
102
|
- dev.yml
|
103
|
+
- gemfiles/activejob_5_2.gemfile
|
104
|
+
- gemfiles/activejob_edge.gemfile
|
88
105
|
- guides/best-practices.md
|
89
106
|
- guides/custom-enumerator.md
|
90
107
|
- guides/iteration-how-it-works.md
|
@@ -103,7 +120,8 @@ files:
|
|
103
120
|
homepage: https://github.com/shopify/job-iteration
|
104
121
|
licenses:
|
105
122
|
- MIT
|
106
|
-
metadata:
|
123
|
+
metadata:
|
124
|
+
changelog_uri: https://github.com/Shopify/job-iteration/blob/master/CHANGELOG.md
|
107
125
|
post_install_message:
|
108
126
|
rdoc_options: []
|
109
127
|
require_paths:
|
@@ -120,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
138
|
version: '0'
|
121
139
|
requirements: []
|
122
140
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.6
|
141
|
+
rubygems_version: 2.7.6
|
124
142
|
signing_key:
|
125
143
|
specification_version: 4
|
126
144
|
summary: Makes your background jobs interruptible and resumable.
|