que-scheduler 3.2.4 → 3.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|