mini_scheduler 0.8.3 → 0.9.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/.gitignore +2 -0
- data/.rubocop.yml +1 -113
- data/lib/generators/mini_scheduler/install/templates/mini_scheduler_initializer.rb +9 -5
- data/lib/mini_scheduler.rb +11 -2
- data/lib/mini_scheduler/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf8e76b54130cca4fcd19911dd1b5a9a555c9d4eb082831a3232e8545e4a4fca
|
4
|
+
data.tar.gz: b5ae3324219df3967402751423ea3eac9639a111dc121a84acbd5dfdced0bd88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f4c366bd7d125b5d8e8ae267ddeff8eb4499fb86500ca3c6e69984b1659948c730cf859ef69565067ba9e88f0aec2a1c070bdd3477a32de7c95501628312da21
|
7
|
+
data.tar.gz: 1d218ff79a0ae03bc46b3af397e074cc1c9198249676c1364d10b2b690cb0a33d74d49f043cdbb8686494a8b91ed402dd4fbe33e921df0a3bdb9b7012d5c0390
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,113 +1 @@
|
|
1
|
-
|
2
|
-
TargetRubyVersion: 2.4
|
3
|
-
DisabledByDefault: true
|
4
|
-
Exclude:
|
5
|
-
- 'db/schema.rb'
|
6
|
-
- 'bundle/**/*'
|
7
|
-
- 'vendor/**/*'
|
8
|
-
- 'node_modules/**/*'
|
9
|
-
- 'public/**/*'
|
10
|
-
|
11
|
-
# Prefer &&/|| over and/or.
|
12
|
-
Style/AndOr:
|
13
|
-
Enabled: true
|
14
|
-
|
15
|
-
# Do not use braces for hash literals when they are the last argument of a
|
16
|
-
# method call.
|
17
|
-
Style/BracesAroundHashParameters:
|
18
|
-
Enabled: true
|
19
|
-
|
20
|
-
# Align `when` with `case`.
|
21
|
-
Layout/CaseIndentation:
|
22
|
-
Enabled: true
|
23
|
-
|
24
|
-
# Align comments with method definitions.
|
25
|
-
Layout/CommentIndentation:
|
26
|
-
Enabled: true
|
27
|
-
|
28
|
-
# No extra empty lines.
|
29
|
-
Layout/EmptyLines:
|
30
|
-
Enabled: true
|
31
|
-
|
32
|
-
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
33
|
-
Style/HashSyntax:
|
34
|
-
Enabled: true
|
35
|
-
|
36
|
-
# Two spaces, no tabs (for indentation).
|
37
|
-
Layout/IndentationWidth:
|
38
|
-
Enabled: true
|
39
|
-
|
40
|
-
Layout/SpaceAfterColon:
|
41
|
-
Enabled: true
|
42
|
-
|
43
|
-
Layout/SpaceAfterComma:
|
44
|
-
Enabled: true
|
45
|
-
|
46
|
-
Layout/SpaceAroundEqualsInParameterDefault:
|
47
|
-
Enabled: true
|
48
|
-
|
49
|
-
Layout/SpaceAroundKeyword:
|
50
|
-
Enabled: true
|
51
|
-
|
52
|
-
Layout/SpaceAroundOperators:
|
53
|
-
Enabled: true
|
54
|
-
|
55
|
-
Layout/SpaceBeforeFirstArg:
|
56
|
-
Enabled: true
|
57
|
-
|
58
|
-
# Defining a method with parameters needs parentheses.
|
59
|
-
Style/MethodDefParentheses:
|
60
|
-
Enabled: true
|
61
|
-
|
62
|
-
# Use `foo {}` not `foo{}`.
|
63
|
-
Layout/SpaceBeforeBlockBraces:
|
64
|
-
Enabled: true
|
65
|
-
|
66
|
-
# Use `foo { bar }` not `foo {bar}`.
|
67
|
-
Layout/SpaceInsideBlockBraces:
|
68
|
-
Enabled: true
|
69
|
-
|
70
|
-
# Use `{ a: 1 }` not `{a:1}`.
|
71
|
-
Layout/SpaceInsideHashLiteralBraces:
|
72
|
-
Enabled: true
|
73
|
-
|
74
|
-
Layout/SpaceInsideParens:
|
75
|
-
Enabled: true
|
76
|
-
|
77
|
-
# Detect hard tabs, no hard tabs.
|
78
|
-
Layout/Tab:
|
79
|
-
Enabled: true
|
80
|
-
|
81
|
-
# Blank lines should not have any spaces.
|
82
|
-
Layout/TrailingBlankLines:
|
83
|
-
Enabled: true
|
84
|
-
|
85
|
-
# No trailing whitespace.
|
86
|
-
Layout/TrailingWhitespace:
|
87
|
-
Enabled: true
|
88
|
-
|
89
|
-
Lint/Debugger:
|
90
|
-
Enabled: true
|
91
|
-
|
92
|
-
Lint/BlockAlignment:
|
93
|
-
Enabled: true
|
94
|
-
|
95
|
-
# Align `end` with the matching keyword or starting expression except for
|
96
|
-
# assignments, where it should be aligned with the LHS.
|
97
|
-
Lint/EndAlignment:
|
98
|
-
Enabled: true
|
99
|
-
EnforcedStyleAlignWith: variable
|
100
|
-
|
101
|
-
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
102
|
-
Lint/RequireParentheses:
|
103
|
-
Enabled: true
|
104
|
-
|
105
|
-
Layout/MultilineMethodCallIndentation:
|
106
|
-
Enabled: true
|
107
|
-
EnforcedStyle: indented
|
108
|
-
|
109
|
-
Layout/AlignHash:
|
110
|
-
Enabled: true
|
111
|
-
|
112
|
-
Bundler/OrderedGems:
|
113
|
-
Enabled: false
|
1
|
+
inherit_from: https://raw.githubusercontent.com/discourse/discourse/master/.rubocop.yml
|
@@ -19,6 +19,14 @@ MiniScheduler.configure do |config|
|
|
19
19
|
# ...
|
20
20
|
# end
|
21
21
|
|
22
|
+
# Before each tick, the configured block is run to check if the next job
|
23
|
+
# should be scheduled. The block should return a boolean where a return value
|
24
|
+
# of `True` skip scheduling.
|
25
|
+
|
26
|
+
# config.skip_schedule do
|
27
|
+
# ...
|
28
|
+
# end
|
29
|
+
|
22
30
|
# Add code that runs before processing requests to the
|
23
31
|
# scheduler pages of the Sidekiq web UI.
|
24
32
|
|
@@ -29,10 +37,6 @@ end
|
|
29
37
|
|
30
38
|
if Sidekiq.server? && defined?(Rails)
|
31
39
|
Rails.application.config.after_initialize do
|
32
|
-
|
33
|
-
|
34
|
-
if !scheduler_hostname || scheduler_hostname.split(',').include?(`hostname`.strip)
|
35
|
-
MiniScheduler.start
|
36
|
-
end
|
40
|
+
MiniScheduler.start
|
37
41
|
end
|
38
42
|
end
|
data/lib/mini_scheduler.rb
CHANGED
@@ -47,22 +47,31 @@ module MiniScheduler
|
|
47
47
|
@before_sidekiq_web_request
|
48
48
|
end
|
49
49
|
|
50
|
+
def self.skip_schedule(&blk)
|
51
|
+
@skip_schedule = blk if blk
|
52
|
+
@skip_schedule
|
53
|
+
end
|
54
|
+
|
50
55
|
def self.start
|
51
56
|
manager = Manager.new
|
57
|
+
|
52
58
|
Manager.discover_schedules.each do |schedule|
|
53
59
|
manager.ensure_schedule!(schedule)
|
54
60
|
end
|
61
|
+
|
55
62
|
Thread.new do
|
56
63
|
while true
|
57
64
|
begin
|
58
|
-
|
65
|
+
if !self.skip_schedule || !self.skip_schedule.call
|
66
|
+
manager.tick
|
67
|
+
end
|
59
68
|
rescue => e
|
60
69
|
# the show must go on
|
61
70
|
handle_job_exception(e, message: "While ticking scheduling manager")
|
62
71
|
end
|
72
|
+
|
63
73
|
sleep 1
|
64
74
|
end
|
65
75
|
end
|
66
76
|
end
|
67
|
-
|
68
77
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_scheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Saffron
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: pg
|