que-scheduler 0.8.1 → 0.9.1

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