que-scheduler 0.8.1 → 0.9.1
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.rb +1 -0
- data/lib/que/scheduler/engine.rb +14 -0
- data/lib/que/scheduler/schedule_parser.rb +13 -23
- data/lib/que/scheduler/scheduler_job.rb +1 -1
- data/lib/que/scheduler/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b426bc239a8d5810c33e8df0d62350ec1556c2a
|
4
|
+
data.tar.gz: 15dedc3ff27d43206d7fb9e7c97f592d3cb4847e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b87c40dd29f3aad6e85fa170bf0c855809cabbfa0a7f3793c2d19497b11def0f357135b3e13bf5a3eb5f865677314fbb8fd2b62a56450fe209f60a042fc1ab38
|
7
|
+
data.tar.gz: d7b98ae64b2c6b5400ba1e2e40b0dd7003f5545075926b16537c4ed70d4107ad633043fdcf7c5856ff18821544cdcac1cc59e72accf00fb5d5874420bfd23cc2
|
data/lib/que/scheduler.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails/engine'
|
4
|
+
|
5
|
+
module Que
|
6
|
+
module Scheduler
|
7
|
+
class Engine < ::Rails::Engine
|
8
|
+
config.after_initialize do
|
9
|
+
# Trigger a load of the schedule to ensure fast fail if it is invalid.
|
10
|
+
ScheduleParser.defined_jobs
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -9,29 +9,19 @@ module Que
|
|
9
9
|
QUE_SCHEDULER_CONFIG_LOCATION =
|
10
10
|
ENV.fetch('QUE_SCHEDULER_CONFIG_LOCATION', 'config/que_schedule.yml')
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
name: k,
|
26
|
-
job_class: v['class'] || k,
|
27
|
-
queue: v['queue'],
|
28
|
-
args: v['args'],
|
29
|
-
priority: v['priority'],
|
30
|
-
cron: v['cron'],
|
31
|
-
unmissable: v['unmissable']
|
32
|
-
}.compact
|
33
|
-
)
|
34
|
-
end
|
12
|
+
def self.defined_jobs
|
13
|
+
@defined_jobs ||= YAML.load_file(QUE_SCHEDULER_CONFIG_LOCATION).map do |k, v|
|
14
|
+
Que::Scheduler::DefinedJob.new(
|
15
|
+
{
|
16
|
+
name: k,
|
17
|
+
job_class: v['class'] || k,
|
18
|
+
queue: v['queue'],
|
19
|
+
args: v['args'],
|
20
|
+
priority: v['priority'],
|
21
|
+
cron: v['cron'],
|
22
|
+
unmissable: v['unmissable']
|
23
|
+
}.compact
|
24
|
+
)
|
35
25
|
end
|
36
26
|
end
|
37
27
|
end
|
@@ -57,7 +57,7 @@ module Que
|
|
57
57
|
def enqueue_required_jobs(scheduler_job_args, logs)
|
58
58
|
# Obtain the hash of missed jobs. Keys are the job classes, and the values are arrays
|
59
59
|
# each containing more arrays for the arguments of that instance.
|
60
|
-
result = EnqueueingCalculator.parse(ScheduleParser.
|
60
|
+
result = EnqueueingCalculator.parse(ScheduleParser.defined_jobs, scheduler_job_args)
|
61
61
|
result.missed_jobs.each do |job_class, args_arrays|
|
62
62
|
args_arrays.each do |args|
|
63
63
|
logs << "que-scheduler enqueueing #{job_class} with args: #{args}"
|
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: 0.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Lascelles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -90,6 +90,7 @@ files:
|
|
90
90
|
- README.md
|
91
91
|
- lib/que/scheduler.rb
|
92
92
|
- lib/que/scheduler/defined_job.rb
|
93
|
+
- lib/que/scheduler/engine.rb
|
93
94
|
- lib/que/scheduler/enqueueing_calculator.rb
|
94
95
|
- lib/que/scheduler/schedule_parser.rb
|
95
96
|
- lib/que/scheduler/scheduler_job.rb
|