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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acd02f5b4f477baf80628e51ac7d957f6b35232f
4
- data.tar.gz: 7d5c1f2070c8b23a3f68e8fae581d87da0aa35f2
3
+ metadata.gz: 0b426bc239a8d5810c33e8df0d62350ec1556c2a
4
+ data.tar.gz: 15dedc3ff27d43206d7fb9e7c97f592d3cb4847e
5
5
  SHA512:
6
- metadata.gz: 27fcc0bc6221078c6b974347679b3afcf672c0a8f7406407cd3468c9e687ed935d6be9d53795792f7d22b3d22fe62df28dfe353e131b0fa576244321534c716e
7
- data.tar.gz: 7c41e5d31b7416f44bf4fbc0ade84d93f2e94aa1f3b35485b366f58381034c017cda5e4c77cae91b4f77f9278a370eba99ca1f9351990a33c18b72f95c895a9a
6
+ metadata.gz: b87c40dd29f3aad6e85fa170bf0c855809cabbfa0a7f3793c2d19497b11def0f357135b3e13bf5a3eb5f865677314fbb8fd2b62a56450fe209f60a042fc1ab38
7
+ data.tar.gz: d7b98ae64b2c6b5400ba1e2e40b0dd7003f5545075926b16537c4ed70d4107ad633043fdcf7c5856ff18821544cdcac1cc59e72accf00fb5d5874420bfd23cc2
@@ -1,2 +1,3 @@
1
1
  require 'que/scheduler/version'
2
2
  require 'que/scheduler/scheduler_job'
3
+ require 'que/scheduler/engine' if Gem::Specification.find_by_name('railties')
@@ -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
- class << self
13
- def scheduler_config
14
- @scheduler_config ||= begin
15
- jobs_list(YAML.load_file(QUE_SCHEDULER_CONFIG_LOCATION))
16
- end
17
- end
18
-
19
- # Convert the config hash into a list of real classes and args, parsing the cron and
20
- # "unmissable" parameters.
21
- def jobs_list(schedule)
22
- schedule.map do |k, v|
23
- Que::Scheduler::DefinedJob.new(
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.scheduler_config, scheduler_job_args)
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}"
@@ -1,5 +1,5 @@
1
1
  module Que
2
2
  module Scheduler
3
- VERSION = '0.8.1'.freeze
3
+ VERSION = '0.9.1'.freeze
4
4
  end
5
5
  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: 0.8.1
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-18 00:00:00.000000000 Z
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