que-scheduler 3.2.4 → 3.2.5
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/lib/que/scheduler/audit.rb +2 -2
- data/lib/que/scheduler/config.rb +3 -0
- data/lib/que/scheduler/db.rb +2 -2
- data/lib/que/scheduler/migrations.rb +7 -4
- data/lib/que/scheduler/scheduler_job.rb +1 -0
- data/lib/que/scheduler/version.rb +1 -1
- data/lib/que/scheduler/version_support.rb +14 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53c67a2992ebec58fd5f78b27d498b3c57fc3d96e12418eef44f107137c4e87d
|
4
|
+
data.tar.gz: 9327a0ad5ec9f30ab8a21a83adb6b7ddc288816c94a159bb75a5255c82a6f199
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d975f2f8bfaef54fd7356b7339da8fb12c5d2333b3c719de122d23cd409ba64ef9159443a98b7a960033fddc8d77739783fec4585846463b26e4b0f021c41d16
|
7
|
+
data.tar.gz: 588bec202c190e898fffe4bb0c5188b1439dca86ead2d0b160a2b170f879e72d3f12374bd766787f53c62c30c2d2331327c1563274dd954a82d06746db3f805e
|
data/lib/que/scheduler/audit.rb
CHANGED
@@ -22,10 +22,10 @@ module Que
|
|
22
22
|
|
23
23
|
class << self
|
24
24
|
def append(scheduler_job_id, executed_at, enqueued_jobs)
|
25
|
-
::Que.execute(INSERT_AUDIT, [scheduler_job_id, executed_at])
|
25
|
+
::Que::Scheduler::VersionSupport.execute(INSERT_AUDIT, [scheduler_job_id, executed_at])
|
26
26
|
enqueued_jobs.each do |j|
|
27
27
|
attrs = Que::Scheduler::VersionSupport.job_attributes(j)
|
28
|
-
inserted = ::Que.execute(
|
28
|
+
inserted = ::Que::Scheduler::VersionSupport.execute(
|
29
29
|
INSERT_AUDIT_ENQUEUED,
|
30
30
|
[scheduler_job_id] +
|
31
31
|
attrs.values_at(:job_class, :queue, :priority, :args, :job_id, :run_at)
|
data/lib/que/scheduler/config.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'que'
|
2
|
+
require_relative 'version_support'
|
2
3
|
|
3
4
|
module Que
|
4
5
|
module Scheduler
|
@@ -14,6 +15,7 @@ module Que
|
|
14
15
|
class Configuration
|
15
16
|
attr_accessor :schedule_location
|
16
17
|
attr_accessor :transaction_adapter
|
18
|
+
attr_accessor :que_scheduler_queue
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -21,4 +23,5 @@ end
|
|
21
23
|
Que::Scheduler.configure do |config|
|
22
24
|
config.schedule_location = ENV.fetch('QUE_SCHEDULER_CONFIG_LOCATION', 'config/que_schedule.yml')
|
23
25
|
config.transaction_adapter = ::Que.method(:transaction)
|
26
|
+
config.que_scheduler_queue = Que::Scheduler::VersionSupport.default_scheduler_queue
|
24
27
|
end
|
data/lib/que/scheduler/db.rb
CHANGED
@@ -11,11 +11,11 @@ module Que
|
|
11
11
|
|
12
12
|
class << self
|
13
13
|
def count_schedulers
|
14
|
-
Que.execute(SCHEDULER_COUNT_SQL).first.values.first.to_i
|
14
|
+
Que::Scheduler::VersionSupport.execute(SCHEDULER_COUNT_SQL).first.values.first.to_i
|
15
15
|
end
|
16
16
|
|
17
17
|
def now
|
18
|
-
Que.execute(NOW_SQL).first.values.first
|
18
|
+
Que::Scheduler::VersionSupport.execute(NOW_SQL).first.values.first
|
19
19
|
end
|
20
20
|
|
21
21
|
def transaction
|
@@ -27,13 +27,15 @@ module Que
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def db_version
|
30
|
-
|
30
|
+
if audit_table_exists?
|
31
|
+
return Que::Scheduler::VersionSupport.execute(TABLE_COMMENT).first[:description].to_i
|
32
|
+
end
|
31
33
|
|
32
34
|
Que::Scheduler::Db.count_schedulers.zero? ? 0 : 1
|
33
35
|
end
|
34
36
|
|
35
37
|
def audit_table_exists?
|
36
|
-
result = Que.execute(<<-SQL)
|
38
|
+
result = Que::Scheduler::VersionSupport.execute(<<-SQL)
|
37
39
|
SELECT * FROM information_schema.tables WHERE table_name = '#{AUDIT_TABLE_NAME}';
|
38
40
|
SQL
|
39
41
|
result.any?
|
@@ -52,10 +54,11 @@ module Que
|
|
52
54
|
end
|
53
55
|
|
54
56
|
def execute_step(number, direction)
|
55
|
-
|
57
|
+
sql = IO.read("#{__dir__}/migrations/#{number}/#{direction}.sql")
|
58
|
+
Que::Scheduler::VersionSupport.execute(sql)
|
56
59
|
return unless audit_table_exists?
|
57
60
|
|
58
|
-
Que.execute(
|
61
|
+
Que::Scheduler::VersionSupport.execute(
|
59
62
|
"COMMENT ON TABLE que_scheduler_audit IS '#{direction == :up ? number : number - 1}'"
|
60
63
|
)
|
61
64
|
end
|
@@ -72,6 +72,7 @@ module Que
|
|
72
72
|
# And rerun...
|
73
73
|
next_run_at = scheduler_job_args.as_time.beginning_of_minute + SCHEDULER_FREQUENCY
|
74
74
|
enqueued_job = SchedulerJob.enqueue(
|
75
|
+
queue: Que::Scheduler.configuration.que_scheduler_queue,
|
75
76
|
last_run_time: last_full_execution.iso8601,
|
76
77
|
job_dictionary: job_dictionary,
|
77
78
|
run_at: next_run_at
|
@@ -13,6 +13,20 @@ module Que
|
|
13
13
|
def job_attributes(enqueued_job)
|
14
14
|
enqueued_job.attrs.transform_keys(&:to_sym)
|
15
15
|
end
|
16
|
+
|
17
|
+
# Between Que 0.x and 1.x the result of `Que.execute` changed keys from strings to symbols.
|
18
|
+
# Here we wrap the concept and make sure either way produces symbols
|
19
|
+
def execute(str, args = [])
|
20
|
+
normalise_array_of_hashes(Que.execute(str, args))
|
21
|
+
end
|
22
|
+
|
23
|
+
def default_scheduler_queue
|
24
|
+
''
|
25
|
+
end
|
26
|
+
|
27
|
+
def normalise_array_of_hashes(array)
|
28
|
+
array.map { |row| row.transform_keys(&:to_sym) }
|
29
|
+
end
|
16
30
|
end
|
17
31
|
end
|
18
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: que-scheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Lascelles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -230,16 +230,16 @@ dependencies:
|
|
230
230
|
name: reek
|
231
231
|
requirement: !ruby/object:Gem::Requirement
|
232
232
|
requirements:
|
233
|
-
- -
|
233
|
+
- - '='
|
234
234
|
- !ruby/object:Gem::Version
|
235
|
-
version:
|
235
|
+
version: 5.0.2
|
236
236
|
type: :development
|
237
237
|
prerelease: false
|
238
238
|
version_requirements: !ruby/object:Gem::Requirement
|
239
239
|
requirements:
|
240
|
-
- -
|
240
|
+
- - '='
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
version:
|
242
|
+
version: 5.0.2
|
243
243
|
- !ruby/object:Gem::Dependency
|
244
244
|
name: rspec
|
245
245
|
requirement: !ruby/object:Gem::Requirement
|
@@ -260,14 +260,14 @@ dependencies:
|
|
260
260
|
requirements:
|
261
261
|
- - "~>"
|
262
262
|
- !ruby/object:Gem::Version
|
263
|
-
version:
|
263
|
+
version: 0.63.0
|
264
264
|
type: :development
|
265
265
|
prerelease: false
|
266
266
|
version_requirements: !ruby/object:Gem::Requirement
|
267
267
|
requirements:
|
268
268
|
- - "~>"
|
269
269
|
- !ruby/object:Gem::Version
|
270
|
-
version:
|
270
|
+
version: 0.63.0
|
271
271
|
- !ruby/object:Gem::Dependency
|
272
272
|
name: sqlite3
|
273
273
|
requirement: !ruby/object:Gem::Requirement
|