que-scheduler 3.4.0 → 3.4.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
  SHA256:
3
- metadata.gz: 53cadc9fafa321124d4f52caa66503d8590cb1eaa11ee2ac86e0208c5d6a0fef
4
- data.tar.gz: 2a5731c305089b58c3841f51b67c2dc698718e123a9b68395e92e1dfff37a693
3
+ metadata.gz: cf1ee6c62677a8c215d48d990da257e0f4854c8e6e354e1eae3e90fc0685b601
4
+ data.tar.gz: dd948edfb90841bc54fc0bb3fc9e725bf4127f1ca31c53654a209ed6d5332e42
5
5
  SHA512:
6
- metadata.gz: '087a32c4e9245c3bbaa26fb0e891f2b232c2617bad351d354eb502c0edb853a32ec786601a71e796fe5baa1b13f3691f1dc1c17f55d1b1973648101cd60602c7'
7
- data.tar.gz: 1ba223766fa1d52b79b7ebcdcd534da366636cc306f538e6bc067830a2999b57913c1ade0f5a381287883222aedadc4aa380f9fb479223838468f7df3dfa5d73
6
+ metadata.gz: 7ae4812d01e7ea24300afb6b76a5194f3a25a912852723e30cbc8a1405d1822e8fb543dee955049f87e3063a9ae8b322675e6bbb836c0ab9fe0cc46c119b180c
7
+ data.tar.gz: 7246c2709a90c3e2ac7e14a9a8ee2f91792f3cccf0f516ad2dc6f119ddcf025b9eb9324fcf4e3eb6f7b279646066a02693f2f1364773a34c3aed011e041012da
@@ -1,3 +1,3 @@
1
1
  # rubocop:disable Naming/FileName
2
- require 'que/scheduler'
2
+ require "que/scheduler"
3
3
  # rubocop:enable Naming/FileName
@@ -1,8 +1,8 @@
1
- require 'que/scheduler/version'
2
- require 'que/scheduler/version_support'
3
- require 'que/scheduler/config'
4
- require 'que/scheduler/scheduler_job'
5
- require 'que/scheduler/db'
6
- require 'que/scheduler/audit'
7
- require 'que/scheduler/migrations'
8
- require 'que/scheduler/jobs/que_scheduler_audit_clear_down_job'
1
+ require "que/scheduler/version"
2
+ require "que/scheduler/version_support"
3
+ require "que/scheduler/config"
4
+ require "que/scheduler/scheduler_job"
5
+ require "que/scheduler/db"
6
+ require "que/scheduler/audit"
7
+ require "que/scheduler/migrations"
8
+ require "que/scheduler/jobs/que_scheduler_audit_clear_down_job"
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'to_enqueue'
3
+ require_relative "to_enqueue"
4
4
 
5
5
  module Que
6
6
  module Scheduler
7
7
  module Audit
8
- TABLE_NAME = 'que_scheduler_audit'
9
- ENQUEUED_TABLE_NAME = 'que_scheduler_audit_enqueued'
8
+ TABLE_NAME = "que_scheduler_audit"
9
+ ENQUEUED_TABLE_NAME = "que_scheduler_audit_enqueued"
10
10
  INSERT_AUDIT = %{
11
11
  INSERT INTO #{TABLE_NAME} (scheduler_job_id, executed_at)
12
12
  VALUES ($1::bigint, $2::timestamptz)
@@ -1,5 +1,5 @@
1
- require 'que'
2
- require_relative 'version_support'
1
+ require "que"
2
+ require_relative "version_support"
3
3
 
4
4
  module Que
5
5
  module Scheduler
@@ -21,7 +21,7 @@ module Que
21
21
  end
22
22
 
23
23
  Que::Scheduler.configure do |config|
24
- config.schedule_location = ENV.fetch('QUE_SCHEDULER_CONFIG_LOCATION', 'config/que_schedule.yml')
24
+ config.schedule_location = ENV.fetch("QUE_SCHEDULER_CONFIG_LOCATION", "config/que_schedule.yml")
25
25
  config.transaction_adapter = ::Que.method(:transaction)
26
26
  config.que_scheduler_queue = Que::Scheduler::VersionSupport.default_scheduler_queue
27
27
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'config'
3
+ require_relative "config"
4
4
 
5
5
  module Que
6
6
  module Scheduler
7
7
  module Db
8
8
  SCHEDULER_COUNT_SQL =
9
9
  "SELECT COUNT(*) FROM que_jobs WHERE job_class = 'Que::Scheduler::SchedulerJob'"
10
- NOW_SQL = 'SELECT now()'
10
+ NOW_SQL = "SELECT now()"
11
11
 
12
12
  class << self
13
13
  def count_schedulers
@@ -1,5 +1,5 @@
1
- require 'hashie'
2
- require 'fugit'
1
+ require "hashie"
2
+ require "fugit"
3
3
 
4
4
  # This is the definition of one scheduleable job in the que-scheduler config yml file.
5
5
  module Que
@@ -59,10 +59,10 @@ module Que
59
59
  # rubocop:disable Style/GuardClause This reads better as a conditional
60
60
  def validate_fields_types(options)
61
61
  unless queue.nil? || queue.is_a?(String)
62
- err_field(:queue, options, 'queue must be a string')
62
+ err_field(:queue, options, "queue must be a string")
63
63
  end
64
64
  unless priority.nil? || priority.is_a?(Integer)
65
- err_field(:priority, options, 'priority must be an integer')
65
+ err_field(:priority, options, "priority must be an integer")
66
66
  end
67
67
  unless DEFINED_JOB_TYPES.include?(schedule_type)
68
68
  err_field(:schedule_type, options, "Not in #{DEFINED_JOB_TYPES}")
@@ -71,10 +71,10 @@ module Que
71
71
  # rubocop:enable Style/GuardClause
72
72
 
73
73
  def validate_fields_presence(options)
74
- err_field(:name, options, 'name must be present') if name.nil?
75
- err_field(:job_class, options, 'job_class must be present') if job_class.nil?
74
+ err_field(:name, options, "name must be present") if name.nil?
75
+ err_field(:job_class, options, "job_class must be present") if job_class.nil?
76
76
  # An invalid cron is nil
77
- err_field(:cron, options, 'cron must be present') if cron.nil?
77
+ err_field(:cron, options, "cron must be present") if cron.nil?
78
78
  end
79
79
 
80
80
  def validate_job_class_related(options)
@@ -88,7 +88,7 @@ module Que
88
88
  if queue &&
89
89
  Que::Scheduler::ToEnqueue.active_job_sufficient_version? &&
90
90
  job_class < ::ActiveJob::Base &&
91
- Que::Scheduler::ToEnqueue.active_job_version < Gem::Version.create('6.0.3')
91
+ Que::Scheduler::ToEnqueue.active_job_version < Gem::Version.create("6.0.3")
92
92
  puts <<-ERR
93
93
  WARNING from que-scheduler....
94
94
  Between versions 4.2.3 and 6.0.2 (inclusive) Rails did not support setting queue names
@@ -104,7 +104,7 @@ module Que
104
104
  end
105
105
  end
106
106
 
107
- def err_field(field, options, reason = '')
107
+ def err_field(field, options, reason = "")
108
108
  schedule = Que::Scheduler.configuration.schedule_location
109
109
  value = options[field]
110
110
  raise "Invalid #{field} '#{value}' for '#{name}' in que-scheduler schedule #{schedule}.\n" \
@@ -1,4 +1,4 @@
1
- require 'fugit'
1
+ require "fugit"
2
2
 
3
3
  module Que
4
4
  module Scheduler
@@ -1,4 +1,4 @@
1
- require 'que'
1
+ require "que"
2
2
 
3
3
  # This job can optionally be scheduled to clear down the que-scheduler audit log if it
4
4
  # isn't required in the long term.
@@ -21,8 +21,8 @@ module Que
21
21
  end
22
22
  end
23
23
 
24
- DELETE_AUDIT_ENQUEUED_SQL = build_sql('que_scheduler_audit_enqueued').freeze
25
- DELETE_AUDIT_SQL = build_sql('que_scheduler_audit').freeze
24
+ DELETE_AUDIT_ENQUEUED_SQL = build_sql("que_scheduler_audit_enqueued").freeze
25
+ DELETE_AUDIT_SQL = build_sql("que_scheduler_audit").freeze
26
26
 
27
27
  # Very low priority
28
28
  Que::Scheduler::VersionSupport.set_priority(self, 100)
@@ -36,7 +36,7 @@ module Que
36
36
  # This will delete all but `retain_row_count` oldest rows
37
37
  count = Que::Scheduler::VersionSupport.execute(DELETE_AUDIT_SQL, [retain_row_count])
38
38
  log = "#{self.class} cleared down #{count.first.fetch(:count)} rows"
39
- ::Que.log(event: 'que-scheduler'.to_sym, message: log)
39
+ ::Que.log(event: "que-scheduler".to_sym, message: log)
40
40
  end
41
41
  end
42
42
  end
@@ -1,4 +1,4 @@
1
- require_relative 'defined_job'
1
+ require_relative "defined_job"
2
2
 
3
3
  module Que
4
4
  module Scheduler
@@ -30,11 +30,11 @@ module Que
30
30
  # an array with one item which is that value (this includes if it is a hash). It could
31
31
  # also be a single nil value.
32
32
  args_array =
33
- if !defined_job_hash.key?('args')
33
+ if !defined_job_hash.key?("args")
34
34
  # No args were requested
35
35
  []
36
36
  else
37
- args = defined_job_hash['args']
37
+ args = defined_job_hash["args"]
38
38
  if args.is_a?(Array)
39
39
  # An array of args was requested
40
40
  args
@@ -47,12 +47,12 @@ module Que
47
47
 
48
48
  Que::Scheduler::DefinedJob.create(
49
49
  name: name,
50
- job_class: defined_job_hash['class'] || name,
51
- queue: defined_job_hash['queue'],
50
+ job_class: defined_job_hash["class"] || name,
51
+ queue: defined_job_hash["queue"],
52
52
  args_array: args_array,
53
- priority: defined_job_hash['priority'],
54
- cron: defined_job_hash['cron'],
55
- schedule_type: defined_job_hash['schedule_type']&.to_sym
53
+ priority: defined_job_hash["priority"],
54
+ cron: defined_job_hash["cron"],
55
+ schedule_type: defined_job_hash["schedule_type"]&.to_sym
56
56
  )
57
57
  end
58
58
  end
@@ -1,11 +1,11 @@
1
- require 'que'
1
+ require "que"
2
2
 
3
- require_relative 'schedule'
4
- require_relative 'enqueueing_calculator'
5
- require_relative 'scheduler_job_args'
6
- require_relative 'state_checks'
7
- require_relative 'to_enqueue'
8
- require_relative 'version_support'
3
+ require_relative "schedule"
4
+ require_relative "enqueueing_calculator"
5
+ require_relative "scheduler_job_args"
6
+ require_relative "state_checks"
7
+ require_relative "to_enqueue"
8
+ require_relative "version_support"
9
9
 
10
10
  # The main job that runs every minute, determining what needs to be enqueued, enqueues the required
11
11
  # jobs, then re-enqueues itself.
@@ -29,7 +29,7 @@ module Que
29
29
  scheduler_job_args, scheduler_job_args.as_time, result.job_dictionary, enqueued_jobs
30
30
  )
31
31
  # Only now we're sure nothing errored, log the results
32
- logs.each { |str| ::Que.log(event: 'que-scheduler'.to_sym, message: str) }
32
+ logs.each { |str| ::Que.log(event: "que-scheduler".to_sym, message: str) }
33
33
  destroy
34
34
  end
35
35
  end
@@ -51,7 +51,7 @@ module Que
51
51
  else
52
52
  # This can happen if a middleware nixes the enqueue call
53
53
  "que-scheduler called enqueue on #{to_enqueue.job_class} " \
54
- 'but it reported no job was scheduled. Has `enqueue` been overridden?'
54
+ "but it reported no job was scheduled. Has `enqueue` been overridden?"
55
55
  end
56
56
  end
57
57
 
@@ -71,7 +71,7 @@ module Que
71
71
 
72
72
  # rubocop:disable Style/GuardClause This reads better as a conditional
73
73
  unless Que::Scheduler::VersionSupport.job_attributes(enqueued_job).fetch(:job_id)
74
- raise 'SchedulerJob could not self-schedule. Has `.enqueue` been monkey patched?'
74
+ raise "SchedulerJob could not self-schedule. Has `.enqueue` been monkey patched?"
75
75
  end
76
76
  # rubocop:enable Style/GuardClause
77
77
  end
@@ -1,6 +1,6 @@
1
- require 'hashie'
2
- require 'active_support'
3
- require 'active_support/time_with_zone'
1
+ require "hashie"
2
+ require "active_support"
3
+ require "active_support/time_with_zone"
4
4
 
5
5
  # These are the args that are used for this particular run of the scheduler.
6
6
  module Que
@@ -1,6 +1,6 @@
1
- require_relative 'audit'
2
- require_relative 'db'
3
- require_relative 'migrations'
1
+ require_relative "audit"
2
+ require_relative "db"
3
+ require_relative "migrations"
4
4
 
5
5
  module Que
6
6
  module Scheduler
@@ -1,4 +1,4 @@
1
- require 'que'
1
+ require "que"
2
2
 
3
3
  # This module uses polymorphic dispatch to centralise the differences between supporting Que::Job
4
4
  # and other job systems.
@@ -23,13 +23,13 @@ module Que
23
23
  end
24
24
 
25
25
  def active_job_version
26
- Gem.loaded_specs['activejob']&.version
26
+ Gem.loaded_specs["activejob"]&.version
27
27
  end
28
28
 
29
29
  def active_job_sufficient_version?
30
30
  # ActiveJob 4.x does not support job_ids correctly
31
31
  # https://github.com/rails/rails/pull/20056/files
32
- active_job_version && active_job_version > Gem::Version.create('5')
32
+ active_job_version && active_job_version > Gem::Version.create("5")
33
33
  end
34
34
 
35
35
  def active_job_version_supports_queues?
@@ -38,7 +38,7 @@ module Que
38
38
  # and readded in Rails 6.0.3
39
39
  # https://github.com/rails/rails/pull/38635
40
40
  ToEnqueue.active_job_version && ToEnqueue.active_job_version >=
41
- Gem::Version.create('6.0.3')
41
+ Gem::Version.create("6.0.3")
42
42
  end
43
43
 
44
44
  private
@@ -1,5 +1,5 @@
1
1
  module Que
2
2
  module Scheduler
3
- VERSION = '3.4.0'.freeze
3
+ VERSION = "3.4.1".freeze
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
- require 'que'
1
+ require "que"
2
2
 
3
3
  # The purpose of this module is to centralise the differences when supporting both que 0.x and
4
4
  # 1.x with the same gem.
@@ -15,7 +15,7 @@ module Que
15
15
  # the top of all jobs it enqueues.
16
16
  def set_priority(context, priority)
17
17
  if zero_major?
18
- context.instance_variable_set('@priority', priority)
18
+ context.instance_variable_set("@priority", priority)
19
19
  else
20
20
  context.priority = priority
21
21
  end
@@ -24,7 +24,7 @@ module Que
24
24
  # Ensure the job runs at least once an hour when it is backing off due to errors
25
25
  def apply_retry_semantics(context)
26
26
  if zero_major?
27
- context.instance_variable_set('@retry_interval', RETRY_PROC)
27
+ context.instance_variable_set("@retry_interval", RETRY_PROC)
28
28
  else
29
29
  context.maximum_retry_count = 1 << 128 # Heat death of universe
30
30
  context.retry_interval = RETRY_PROC
@@ -33,9 +33,9 @@ module Que
33
33
 
34
34
  def job_attributes(enqueued_job)
35
35
  if zero_major?
36
- enqueued_job.attrs.transform_keys(&:to_sym)
36
+ enqueued_job.attrs.to_h.transform_keys(&:to_sym)
37
37
  else
38
- enqueued_job.que_attrs.transform_keys(&:to_sym).tap do |hash|
38
+ enqueued_job.que_attrs.to_h.transform_keys(&:to_sym).tap do |hash|
39
39
  hash[:job_id] = hash.delete(:id)
40
40
  end
41
41
  end
@@ -48,7 +48,7 @@ module Que
48
48
  end
49
49
 
50
50
  def default_scheduler_queue
51
- zero_major? ? '' : Que::DEFAULT_QUEUE
51
+ zero_major? ? "" : Que::DEFAULT_QUEUE
52
52
  end
53
53
 
54
54
  def running_synchronously?
@@ -56,18 +56,18 @@ module Que
56
56
  end
57
57
 
58
58
  def running_synchronously_code?
59
- zero_major? ? 'Que.mode == :sync' : 'Que.run_synchronously = true'
59
+ zero_major? ? "Que.mode == :sync" : "Que.run_synchronously = true"
60
60
  end
61
61
 
62
62
  def zero_major?
63
63
  # This is the only way to handle beta releases too
64
- @zero_major ||= Gem.loaded_specs['que'].version.to_s.split('.').first.to_i.zero?
64
+ @zero_major ||= Gem.loaded_specs["que"].version.to_s.split(".").first.to_i.zero?
65
65
  end
66
66
 
67
67
  private
68
68
 
69
69
  def normalise_array_of_hashes(array)
70
- array.map { |row| row.transform_keys(&:to_sym) }
70
+ array.map { |row| row.to_h.transform_keys(&:to_sym) }
71
71
  end
72
72
  end
73
73
  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.4.0
4
+ version: 3.4.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: 2020-06-07 00:00:00.000000000 Z
11
+ date: 2020-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport