que-scheduler 4.0.1 → 4.2.0
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/README.md +21 -3
- data/lib/que/scheduler/configuration.rb +3 -4
- data/lib/que/scheduler/db.rb +2 -0
- data/lib/que/scheduler/defined_job.rb +2 -2
- data/lib/que/scheduler/jobs/que_scheduler_audit_clear_down_job.rb +3 -3
- data/lib/que/scheduler/migrations.rb +6 -1
- data/lib/que/scheduler/schedule.rb +12 -10
- data/lib/que/scheduler/scheduler_job.rb +3 -3
- data/lib/que/scheduler/scheduler_job_args.rb +2 -1
- data/lib/que/scheduler/state_checks.rb +1 -1
- data/lib/que/scheduler/time_zone.rb +61 -0
- data/lib/que/scheduler/to_enqueue.rb +12 -8
- data/lib/que/scheduler/version.rb +1 -1
- data/lib/que/scheduler/version_support.rb +5 -1
- data/lib/que/scheduler.rb +1 -0
- metadata +40 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adf8110c30a79a8eeddb300dbfe79a1ac283080983dd41befc9a6769b66efcf6
|
4
|
+
data.tar.gz: 2c800a7070b326993bda2eefea85e151ea74e40a9eb6e653fdfd10e47db59eaa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
[](https://badge.fury.io/rb/que-scheduler)
|
5
|
-
[](https://gitlab.com/hlascelles/que-scheduler/pipelines)
|
6
5
|
[](https://coveralls.io/github/hlascelles/que-scheduler?branch=master)
|
7
6
|
[](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
|
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.
|
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
|
-
|
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
|
data/lib/que/scheduler/db.rb
CHANGED
@@ -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.
|
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
|
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
|
-
|
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"
|
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 =
|
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(
|
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.
|
40
|
-
|
41
|
-
|
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,
|
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
|
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"
|
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
|
-
|
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
|
-
|
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:
|
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
|
-
|
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
|
26
|
-
|
25
|
+
def active_job_loaded?
|
26
|
+
!!active_job_version
|
27
27
|
end
|
28
28
|
|
29
|
-
def
|
30
|
-
|
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.
|
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
|
-
|
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
|
@@ -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 ||=
|
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
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
|
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:
|
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: '
|
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: '
|
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: '
|
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: '
|
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.
|
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.
|
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: '
|
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: '
|
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:
|
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
|
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
|
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.
|
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: []
|