que-scheduler 4.0.1 → 4.2.0

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
  SHA256:
3
- metadata.gz: 78c9bc8d137dbe8a7c2428e50c615928c5d702d06432763b5346030fcbe81d5b
4
- data.tar.gz: 3e639fd3f2263266fa25e25c637390f718e7751726feaefaa63f69cc91124f2d
3
+ metadata.gz: adf8110c30a79a8eeddb300dbfe79a1ac283080983dd41befc9a6769b66efcf6
4
+ data.tar.gz: 2c800a7070b326993bda2eefea85e151ea74e40a9eb6e653fdfd10e47db59eaa
5
5
  SHA512:
6
- metadata.gz: b599d23b38d8263412e2a1fa7eb6621f564a628ae7b66800b0259667a76956e0a9e16824bd463a24edd0752119f30ec01ac3a1951e1d4abfc1d05ed1905745dc
7
- data.tar.gz: 42691328a2727e14f15305e6baac0f0d7b3e4cb1d1a91c80d2ef1f7ab42db56e3bd1640884805adf381d65fbe2d6b3d7abbe2373e8ef49dfbeb737f790b76700
6
+ metadata.gz: a44603e489c6e9a7c7715ef3a53d7a5d4b4743d9e886be1b05daa37d4c3fa47666f80e896eab14d4e3f43ecda5b4cbc3e2532ed85bfe019bc330bb743cefe6e1
7
+ data.tar.gz: 5534d3ca737011e1a97cd4b909377a31e58f287d782cb5c4f1e09e96a6369a12838896270b89609db07be532eb78195524129aa47626fe87024ad3975820e4f7
data/README.md CHANGED
@@ -2,7 +2,6 @@ que-scheduler
2
2
  ================
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/que-scheduler.svg)](https://badge.fury.io/rb/que-scheduler)
5
- [![Build status](https://gitlab.com/hlascelles/que-scheduler/badges/master/pipeline.svg)](https://gitlab.com/hlascelles/que-scheduler/pipelines)
6
5
  [![Coverage Status](https://coveralls.io/repos/github/hlascelles/que-scheduler/badge.svg?branch=master)](https://coveralls.io/github/hlascelles/que-scheduler?branch=master)
7
6
  [![Code Climate Maintainability](https://api.codeclimate.com/v1/badges/710d2fc5202f95d76e8a/maintainability)](https://codeclimate.com/github/hlascelles/que-scheduler/maintainability)
8
7
 
@@ -107,7 +106,7 @@ DailyBatchReport:
107
106
  cron: "0 3 * * *"
108
107
  # This job will be run every day at 03:00 as normal.
109
108
  # However, the "schedule_type: every_event" setting below will ensure that if workers are offline
110
- # for any amount of time then the bcaklog will always be enqueued on recovery.
109
+ # for any amount of time then the backlog will always be enqueued on recovery.
111
110
  # See "Schedule types" below for more information.
112
111
  schedule_type: every_event
113
112
  ```
@@ -162,6 +161,14 @@ Que::Scheduler.configure do |config|
162
161
  # It *must* be the "highest throughput" queue - do not work the scheduler on a "long
163
162
  # running jobs" queue. It is very unlikely you will want to change this.
164
163
  config.que_scheduler_queue = ENV.fetch("QUE_SCHEDULER_QUEUE", "" or "default")
164
+
165
+ # If que-scheduler is being used with Rails, then it will inherit the time zone from that
166
+ # framework, and you can leave the value as nil as shown below. However, if you are not using
167
+ # Rails, you may need to set the time zone here. If que-scheduler cannot determine the time zone
168
+ # it will yield an error prompting you for action.
169
+ # If you need to set a value, use the string representation:
170
+ # eg: config.time_zone = "Europe/London"
171
+ config.time_zone = nil
165
172
  end
166
173
  ```
167
174
 
@@ -220,6 +227,15 @@ The changes in past migrations were:
220
227
  | 5 | Dropped an unnecessary index |
221
228
  | 6 | Enforced single scheduler job at the trigger level |
222
229
 
230
+ The changes to the DB ([DDL](https://en.wikipedia.org/wiki/Data_definition_language)) are all
231
+ captured in the structure.sql so will be re-run in correctly if squashed - except for the actual
232
+ scheduling of the job itself (as that is [DML](https://en.wikipedia.org/wiki/Data_manipulation_language)).
233
+ If you squash your migrations make sure this is added as the final line:
234
+
235
+ ```ruby
236
+ Que::Scheduler::Migrations.reenqueue_scheduler_if_missing
237
+ ```
238
+
223
239
  ## HA Redundancy and DB restores
224
240
 
225
241
  Because of the way que-scheduler works, it requires no additional processes. It is, itself, a Que job.
@@ -292,7 +308,7 @@ A full changelog can be found here: [CHANGELOG.md](https://github.com/hlascelles
292
308
 
293
309
  ## System requirements
294
310
 
295
- Your [postgres](https://www.postgresql.org/) database must be at least version 9.4.0.
311
+ Your [postgres](https://www.postgresql.org/) database must be at least version 9.5.0.
296
312
 
297
313
  ## Inspiration
298
314
 
@@ -301,8 +317,10 @@ This gem was inspired by the makers of the excellent [Que](https://github.com/ch
301
317
  ## Contributors
302
318
 
303
319
  * @bnauta
320
+ * @bjeanes
304
321
  * @JackDanger
305
322
  * @jish
306
323
  * @joehorsnell
307
324
  * @krzyzak
308
325
  * @papodaca
326
+ * @ajoneil
@@ -4,10 +4,8 @@ require_relative "version_support"
4
4
  module Que
5
5
  module Scheduler
6
6
  class Configuration
7
- attr_accessor :schedule_location
8
- attr_accessor :schedule
9
- attr_accessor :transaction_adapter
10
- attr_accessor :que_scheduler_queue
7
+ attr_accessor :schedule_location, :schedule, :transaction_adapter, :que_scheduler_queue,
8
+ :time_zone
11
9
  end
12
10
 
13
11
  class << self
@@ -26,6 +24,7 @@ module Que
26
24
  config.que_scheduler_queue =
27
25
  ENV.fetch("QUE_SCHEDULER_QUEUE", Que::Scheduler::VersionSupport.default_scheduler_queue)
28
26
  config.schedule = nil
27
+ config.time_zone = nil
29
28
  end
30
29
  end
31
30
  end
@@ -18,9 +18,11 @@ module Que
18
18
  Que::Scheduler::VersionSupport.execute(NOW_SQL).first.values.first
19
19
  end
20
20
 
21
+ # rubocop:disable Style/ExplicitBlockArgument
21
22
  def transaction
22
23
  Que::Scheduler.configuration.transaction_adapter.call { yield }
23
24
  end
25
+ # rubocop:enable Style/ExplicitBlockArgument
24
26
  end
25
27
  end
26
28
  end
@@ -86,10 +86,10 @@ module Que
86
86
  # queue name is only supported for a subrange of ActiveJob versions. Print this out as a
87
87
  # warning.
88
88
  if queue &&
89
- Que::Scheduler::ToEnqueue.active_job_sufficient_version? &&
89
+ Que::Scheduler::ToEnqueue.active_job_loaded? &&
90
90
  job_class < ::ActiveJob::Base &&
91
91
  Que::Scheduler::ToEnqueue.active_job_version < Gem::Version.create("6.0.3")
92
- puts <<-ERR
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
95
95
  on que jobs with ActiveJob, so que-scheduler cannot support it.
@@ -8,7 +8,7 @@ module Que
8
8
  class QueSchedulerAuditClearDownJob < Que::Job
9
9
  class << self
10
10
  def build_sql(table_name)
11
- <<-SQL
11
+ <<~SQL
12
12
  WITH deleted AS (
13
13
  DELETE FROM #{table_name}
14
14
  WHERE scheduler_job_id <= (
@@ -28,7 +28,7 @@ module Que
28
28
  Que::Scheduler::VersionSupport.set_priority(self, 100)
29
29
 
30
30
  def run(options)
31
- retain_row_count = options.fetch(:retain_row_count)
31
+ retain_row_count = options.symbolize_keys.fetch(:retain_row_count)
32
32
  Que::Scheduler::Db.transaction do
33
33
  # This may delete zero or more than `retain_row_count` depending on if anything was
34
34
  # scheduled in each of the past schedule runs
@@ -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", message: log)
40
40
  end
41
41
  end
42
42
  end
@@ -41,6 +41,11 @@ module Que
41
41
  result.any?
42
42
  end
43
43
 
44
+ # This method is only intended for use in squashed migrations
45
+ def reenqueue_scheduler_if_missing
46
+ Que::Scheduler::SchedulerJob.enqueue if Que::Scheduler::Db.count_schedulers.zero?
47
+ end
48
+
44
49
  private
45
50
 
46
51
  def migrate_up(current, version)
@@ -54,7 +59,7 @@ module Que
54
59
  end
55
60
 
56
61
  def execute_step(number, direction)
57
- sql = IO.read("#{__dir__}/migrations/#{number}/#{direction}.sql")
62
+ sql = File.read("#{__dir__}/migrations/#{number}/#{direction}.sql")
58
63
  Que::Scheduler::VersionSupport.execute(sql)
59
64
  return unless audit_table_exists?
60
65
 
@@ -27,7 +27,7 @@ module Que
27
27
  end
28
28
 
29
29
  def from_file(location)
30
- from_yaml(IO.read(location))
30
+ from_yaml(File.read(location))
31
31
  end
32
32
 
33
33
  def from_yaml(config)
@@ -36,21 +36,20 @@ module Que
36
36
  end
37
37
 
38
38
  def from_hash(config_hash)
39
- config_hash.map do |name, defined_job_hash|
40
- [name, hash_item_to_defined_job(name, defined_job_hash)]
41
- end.to_h
39
+ config_hash.to_h do |name, defined_job_hash|
40
+ name_str = name.to_s
41
+ [name_str, hash_item_to_defined_job(name_str, defined_job_hash)]
42
+ end
42
43
  end
43
44
 
44
- def hash_item_to_defined_job(name, defined_job_hash)
45
+ def hash_item_to_defined_job(name, defined_job_hash_in)
46
+ defined_job_hash = defined_job_hash_in.stringify_keys
45
47
  # Que stores arguments as a json array. If the args we have to provide are already an
46
48
  # array we can can simply pass them through. If it is a single non-nil value, then we make
47
49
  # an array with one item which is that value (this includes if it is a hash). It could
48
50
  # also be a single nil value.
49
51
  args_array =
50
- if !defined_job_hash.key?("args")
51
- # No args were requested
52
- []
53
- else
52
+ if defined_job_hash.key?("args")
54
53
  args = defined_job_hash["args"]
55
54
  if args.is_a?(Array)
56
55
  # An array of args was requested
@@ -60,11 +59,14 @@ module Que
60
59
  # be enqueued as an array of 1 item
61
60
  [args]
62
61
  end
62
+ else
63
+ # No args were requested
64
+ []
63
65
  end
64
66
 
65
67
  Que::Scheduler::DefinedJob.create(
66
68
  name: name,
67
- job_class: defined_job_hash["class"] || name,
69
+ job_class: defined_job_hash["class"]&.to_s || name,
68
70
  queue: defined_job_hash["queue"],
69
71
  args_array: args_array,
70
72
  priority: defined_job_hash["priority"],
@@ -33,7 +33,7 @@ module Que
33
33
  scheduler_job_args, scheduler_job_args.as_time, result.job_dictionary, enqueued_jobs
34
34
  )
35
35
  # Only now we're sure nothing errored, log the results
36
- logs.each { |str| ::Que.log(event: "que-scheduler".to_sym, message: str) }
36
+ logs.each { |str| ::Que.log(event: :"que-scheduler", message: str) }
37
37
  end
38
38
  end
39
39
 
@@ -50,11 +50,11 @@ module Que
50
50
  def check_enqueued_job(to_enqueue, enqueued_job, logs)
51
51
  logs << if enqueued_job.present?
52
52
  "que-scheduler enqueueing #{enqueued_job.job_class} " \
53
- "#{enqueued_job.job_id} with args: #{enqueued_job.args}"
53
+ "#{enqueued_job.job_id} with args: #{enqueued_job.args}"
54
54
  else
55
55
  # This can happen if a middleware nixes the enqueue call
56
56
  "que-scheduler called enqueue on #{to_enqueue.job_class} " \
57
- "but it reported no job was scheduled. Has `enqueue` been overridden?"
57
+ "but it reported no job was scheduled. Has `enqueue` been overridden?"
58
58
  end
59
59
  end
60
60
 
@@ -22,7 +22,8 @@ module Que
22
22
  else
23
23
  options = options.symbolize_keys
24
24
  {
25
- last_run_time: Time.zone.parse(options.fetch(:last_run_time)),
25
+ last_run_time:
26
+ Que::Scheduler::TimeZone.time_zone.parse(options.fetch(:last_run_time)),
26
27
  job_dictionary: options.fetch(:job_dictionary),
27
28
  }
28
29
  end
@@ -19,7 +19,7 @@ module Que
19
19
  sync_err =
20
20
  if Que::Scheduler::VersionSupport.running_synchronously? && db_version.zero?
21
21
  code = Que::Scheduler::VersionSupport.running_synchronously_code?
22
- <<-ERR_SYNC
22
+ <<~ERR_SYNC
23
23
  You currently have Que to run in synchronous mode using
24
24
  #{code}, so it is most likely this error
25
25
  has happened during an initial migration. You should disable synchronous mode and
@@ -0,0 +1,61 @@
1
+ module Que
2
+ module Scheduler
3
+ module TimeZone
4
+ BOTH_CONFIG_AND_TIME_DOT_ZONE_SET = <<~ERR.freeze
5
+ The que-scheduler config for time_zone has been set to a non-nil value, but
6
+ it appears to also have been set on Time.zone (possibly by Rails). Both of these
7
+ cannot be non-nil.
8
+ You should remove the time_zone config from the que-scheduler config block.
9
+ ERR
10
+
11
+ TIME_ZONE_COULD_NOT_BE_DETERMINED = <<~ERR.freeze
12
+ It appears Time.zone is nil. This prevents proper functioning of que-scheduler.
13
+
14
+ Resolving this issue depends on your application setup.
15
+
16
+ 1) If you are using Rails, set the standard time_zone config
17
+ eg:
18
+ ```
19
+ # In application.rb
20
+ config.time_zone = "Europe/London"
21
+ ```
22
+
23
+ 2) If you are not using Rails, set your time zone in the que-scheduler config:
24
+ eg:
25
+ ```
26
+ Que::Scheduler.configure do |config|
27
+ config.time_zone = "Europe/London"
28
+ end
29
+ ```
30
+ ERR
31
+
32
+ TIME_ZONE_CONFIG_IS_NOT_VALID = <<~ERR.freeze
33
+ The que-scheduler config for time_zone has been set to a non-nil value, but that value
34
+ does not yield a real time zone when passed to ActiveSupport::TimeZone.new
35
+ ERR
36
+
37
+ class << self
38
+ def time_zone
39
+ @time_zone ||=
40
+ begin
41
+ time_dot_zone = Time.zone
42
+ if time_dot_zone.present?
43
+ if Que::Scheduler.configuration.time_zone.present?
44
+ raise BOTH_CONFIG_AND_TIME_DOT_ZONE_SET
45
+ end
46
+
47
+ time_dot_zone
48
+ elsif Que::Scheduler.configuration.time_zone
49
+ new_tz = ActiveSupport::TimeZone.new(Que::Scheduler.configuration.time_zone)
50
+ raise TIME_ZONE_CONFIG_IS_NOT_VALID unless new_tz
51
+
52
+ new_tz
53
+ else
54
+ raise TIME_ZONE_COULD_NOT_BE_DETERMINED
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -22,14 +22,12 @@ module Que
22
22
  type_from_job_class(job_class).present?
23
23
  end
24
24
 
25
- def active_job_version
26
- Gem.loaded_specs["activejob"]&.version
25
+ def active_job_loaded?
26
+ !!active_job_version
27
27
  end
28
28
 
29
- def active_job_sufficient_version?
30
- # ActiveJob 4.x does not support job_ids correctly
31
- # https://github.com/rails/rails/pull/20056/files
32
- active_job_version && active_job_version > Gem::Version.create("5")
29
+ def active_job_version
30
+ Gem.loaded_specs["activejob"]&.version
33
31
  end
34
32
 
35
33
  def active_job_version_supports_queues?
@@ -56,7 +54,7 @@ module Que
56
54
  hash = {
57
55
  ::Que::Job => QueJobType,
58
56
  }
59
- hash[::ActiveJob::Base] = ActiveJobType if ToEnqueue.active_job_sufficient_version?
57
+ hash[::ActiveJob::Base] = ActiveJobType if ToEnqueue.active_job_loaded?
60
58
  hash
61
59
  end
62
60
  end
@@ -105,7 +103,13 @@ module Que
105
103
  scheduled_at =
106
104
  begin
107
105
  scheduled_at_float = data[:scheduled_at]
108
- scheduled_at_float ? Time.zone.at(scheduled_at_float) : nil
106
+ # rubocop:disable Style/EmptyElse
107
+ if scheduled_at_float
108
+ Que::Scheduler::TimeZone.time_zone.at(scheduled_at_float)
109
+ else
110
+ nil
111
+ end
112
+ # rubocop:enable Style/EmptyElse
109
113
  end
110
114
 
111
115
  # Rails didn't support queues for ActiveJob for a while
@@ -1,5 +1,5 @@
1
1
  module Que
2
2
  module Scheduler
3
- VERSION = "4.0.1".freeze
3
+ VERSION = "4.2.0".freeze
4
4
  end
5
5
  end
@@ -61,7 +61,11 @@ module Que
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 ||= que_version.split(".").first.to_i.zero?
65
+ end
66
+
67
+ def que_version
68
+ @que_version ||= Gem.loaded_specs["que"].version.to_s
65
69
  end
66
70
 
67
71
  private
data/lib/que/scheduler.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "que/scheduler/version"
2
2
  require "que/scheduler/version_support"
3
3
  require "que/scheduler/configuration"
4
+ require "que/scheduler/time_zone"
4
5
  require "que/scheduler/scheduler_job"
5
6
  require "que/scheduler/db"
6
7
  require "que/scheduler/audit"
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: 4.0.1
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harry Lascelles
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-29 00:00:00.000000000 Z
11
+ date: 2022-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.0'
19
+ version: '5.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '4.0'
26
+ version: '5.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: fugit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +53,7 @@ dependencies:
53
53
  version: '3'
54
54
  - - "<"
55
55
  - !ruby/object:Gem::Version
56
- version: '5'
56
+ version: '6'
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -63,7 +63,7 @@ dependencies:
63
63
  version: '3'
64
64
  - - "<"
65
65
  - !ruby/object:Gem::Version
66
- version: '5'
66
+ version: '6'
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: que
69
69
  requirement: !ruby/object:Gem::Requirement
@@ -73,7 +73,7 @@ dependencies:
73
73
  version: '0.12'
74
74
  - - "<="
75
75
  - !ruby/object:Gem::Version
76
- version: 1.0.0.beta4
76
+ version: 1.0.0.beta5
77
77
  type: :runtime
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
@@ -83,21 +83,27 @@ dependencies:
83
83
  version: '0.12'
84
84
  - - "<="
85
85
  - !ruby/object:Gem::Version
86
- version: 1.0.0.beta4
86
+ version: 1.0.0.beta5
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: activerecord
89
89
  requirement: !ruby/object:Gem::Requirement
90
90
  requirements:
91
91
  - - ">="
92
92
  - !ruby/object:Gem::Version
93
- version: '4.0'
93
+ version: '5.0'
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '7.0'
94
97
  type: :development
95
98
  prerelease: false
96
99
  version_requirements: !ruby/object:Gem::Requirement
97
100
  requirements:
98
101
  - - ">="
99
102
  - !ruby/object:Gem::Version
100
- version: '4.0'
103
+ version: '5.0'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '7.0'
101
107
  - !ruby/object:Gem::Dependency
102
108
  name: appraisal
103
109
  requirement: !ruby/object:Gem::Requirement
@@ -141,7 +147,7 @@ dependencies:
141
147
  - !ruby/object:Gem::Version
142
148
  version: '0'
143
149
  - !ruby/object:Gem::Dependency
144
- name: coveralls
150
+ name: coveralls_reborn
145
151
  requirement: !ruby/object:Gem::Requirement
146
152
  requirements:
147
153
  - - ">="
@@ -210,6 +216,20 @@ dependencies:
210
216
  - - ">="
211
217
  - !ruby/object:Gem::Version
212
218
  version: '0'
219
+ - !ruby/object:Gem::Dependency
220
+ name: psych
221
+ requirement: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - '='
224
+ - !ruby/object:Gem::Version
225
+ version: 3.1.0
226
+ type: :development
227
+ prerelease: false
228
+ version_requirements: !ruby/object:Gem::Requirement
229
+ requirements:
230
+ - - '='
231
+ - !ruby/object:Gem::Version
232
+ version: 3.1.0
213
233
  - !ruby/object:Gem::Dependency
214
234
  name: rake
215
235
  requirement: !ruby/object:Gem::Requirement
@@ -256,16 +276,16 @@ dependencies:
256
276
  name: rubocop
257
277
  requirement: !ruby/object:Gem::Requirement
258
278
  requirements:
259
- - - '='
279
+ - - ">="
260
280
  - !ruby/object:Gem::Version
261
- version: 0.84.0
281
+ version: '0'
262
282
  type: :development
263
283
  prerelease: false
264
284
  version_requirements: !ruby/object:Gem::Requirement
265
285
  requirements:
266
- - - '='
286
+ - - ">="
267
287
  - !ruby/object:Gem::Version
268
- version: 0.84.0
288
+ version: '0'
269
289
  - !ruby/object:Gem::Dependency
270
290
  name: rubocop-rspec
271
291
  requirement: !ruby/object:Gem::Requirement
@@ -355,6 +375,7 @@ files:
355
375
  - lib/que/scheduler/scheduler_job.rb
356
376
  - lib/que/scheduler/scheduler_job_args.rb
357
377
  - lib/que/scheduler/state_checks.rb
378
+ - lib/que/scheduler/time_zone.rb
358
379
  - lib/que/scheduler/to_enqueue.rb
359
380
  - lib/que/scheduler/version.rb
360
381
  - lib/que/scheduler/version_support.rb
@@ -367,7 +388,7 @@ metadata:
367
388
  changelog_uri: https://github.com/hlascelles/que-scheduler/blob/master/CHANGELOG.md
368
389
  source_code_uri: https://github.com/hlascelles/que-scheduler/
369
390
  bug_tracker_uri: https://github.com/hlascelles/que-scheduler/issues
370
- post_install_message:
391
+ post_install_message:
371
392
  rdoc_options: []
372
393
  require_paths:
373
394
  - lib
@@ -382,8 +403,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
382
403
  - !ruby/object:Gem::Version
383
404
  version: '0'
384
405
  requirements: []
385
- rubygems_version: 3.0.3
386
- signing_key:
406
+ rubygems_version: 3.2.7
407
+ signing_key:
387
408
  specification_version: 4
388
409
  summary: A cron scheduler for Que
389
410
  test_files: []