scheduler_daemon 1.1.5 → 1.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +15 -10
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/scheduler_daemon/base.rb +7 -7
- data/scheduler_daemon-1.1.5.gem +0 -0
- data/scheduler_daemon.gemspec +22 -37
- data/spec/command_line_args_to_hash_spec.rb +9 -9
- data/spec/scheduled_tasks/session_cleaner_task_spec.rb +5 -4
- data/spec/scheduler_spec.rb +4 -4
- metadata +33 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 701f89d51ba0579a0b12a071b684d0510ae12d0efe2a37bae5ba028d6a30ecc4
|
4
|
+
data.tar.gz: 7e951ba8633e040ff58dfb69330556e1065ca22a2e42c427381e2c5c94e222f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3111774072db7a5cae2351a677577871f0b649b2097cbaf2af64ae87f49a7385f75cc7bb6c5eaf14c5a133d80c2e4a0be080e2fd7816e67a01a7b9687bd55623
|
7
|
+
data.tar.gz: 9d3acc9ff3ac601f665e4e11f2ed31ba0f368e0212543867d2258bd346bf705969a5c1e65115ddc8c0d07714eae8c12c5d9ab432592b27fa9936715fc875dbc4
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
scheduler_daemon (1.1.
|
4
|
+
scheduler_daemon (1.1.6)
|
5
5
|
activesupport
|
6
6
|
chronic (>= 0.2.0)
|
7
7
|
daemons (>= 1.0.10)
|
@@ -24,14 +24,19 @@ GEM
|
|
24
24
|
i18n (1.12.0)
|
25
25
|
concurrent-ruby (~> 1.0)
|
26
26
|
minitest (5.17.0)
|
27
|
-
rspec (
|
28
|
-
rspec-core (~>
|
29
|
-
rspec-expectations (~>
|
30
|
-
rspec-mocks (~>
|
31
|
-
rspec-core (
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
rspec (3.12.0)
|
28
|
+
rspec-core (~> 3.12.0)
|
29
|
+
rspec-expectations (~> 3.12.0)
|
30
|
+
rspec-mocks (~> 3.12.0)
|
31
|
+
rspec-core (3.12.0)
|
32
|
+
rspec-support (~> 3.12.0)
|
33
|
+
rspec-expectations (3.12.2)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.12.0)
|
36
|
+
rspec-mocks (3.12.3)
|
37
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
+
rspec-support (~> 3.12.0)
|
39
|
+
rspec-support (3.12.0)
|
35
40
|
rufus-scheduler (2.0.24)
|
36
41
|
tzinfo (>= 0.3.22)
|
37
42
|
tzinfo (2.0.6)
|
@@ -41,7 +46,7 @@ PLATFORMS
|
|
41
46
|
ruby
|
42
47
|
|
43
48
|
DEPENDENCIES
|
44
|
-
rspec (~>
|
49
|
+
rspec (~> 3.12.0)
|
45
50
|
scheduler_daemon!
|
46
51
|
|
47
52
|
BUNDLED WITH
|
data/Rakefile
CHANGED
@@ -27,7 +27,7 @@ begin
|
|
27
27
|
gem.add_dependency('daemons', '>= 1.0.10')
|
28
28
|
gem.add_dependency('rufus-scheduler', '~> 2.0.24')
|
29
29
|
gem.add_dependency('chronic', '>= 0.2.0')
|
30
|
-
gem.add_development_dependency('rspec', '~>
|
30
|
+
gem.add_development_dependency('rspec', '~> 3.12.0')
|
31
31
|
|
32
32
|
gem.executables = ['scheduler_daemon']
|
33
33
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.6
|
@@ -39,7 +39,7 @@ module Scheduler
|
|
39
39
|
@env_name = @options['env_name'] || 'scheduler'
|
40
40
|
@rufus_scheduler = nil
|
41
41
|
@tasks = []
|
42
|
-
|
42
|
+
|
43
43
|
log("initialized with settings: #{@options.inspect}")
|
44
44
|
|
45
45
|
if !@options['skip_init']
|
@@ -48,14 +48,14 @@ module Scheduler
|
|
48
48
|
run_scheduler
|
49
49
|
end
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
# registers a task class with the scheduler
|
53
53
|
def register_task(task)
|
54
|
-
|
54
|
+
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
def load_rails_env
|
58
|
-
if File.
|
58
|
+
if File.exist?('config/environment.rb') && !@options['skip_rails']
|
59
59
|
log("loading rails environment")
|
60
60
|
require File.expand_path('./config/environment')
|
61
61
|
@env_name = ::Rails.env
|
@@ -64,7 +64,7 @@ module Scheduler
|
|
64
64
|
log("Error loading rails environment; #{$!.class.name}: #{$!.message}")
|
65
65
|
raise $!
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
# time redefines itself with a faster implementation, since it gets called a lot.
|
69
69
|
def time
|
70
70
|
if Time.respond_to?(:zone) && Time.zone
|
@@ -74,7 +74,7 @@ module Scheduler
|
|
74
74
|
end
|
75
75
|
time
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def log(*args)
|
79
79
|
return if @options[:silent]
|
80
80
|
Kernel::puts(%([#{time}] #{args.join("\n")}))
|
Binary file
|
data/scheduler_daemon.gemspec
CHANGED
@@ -2,17 +2,19 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: scheduler_daemon 1.1.6 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
|
-
s.name = "scheduler_daemon"
|
8
|
-
s.version = "1.1.
|
8
|
+
s.name = "scheduler_daemon".freeze
|
9
|
+
s.version = "1.1.6"
|
9
10
|
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.
|
12
|
-
s.
|
13
|
-
s.
|
14
|
-
s.
|
15
|
-
s.
|
11
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib".freeze]
|
13
|
+
s.authors = ["Steven Soroka".freeze]
|
14
|
+
s.date = "2023-01-29"
|
15
|
+
s.description = "a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks, only loading the environment ONCE.".freeze
|
16
|
+
s.email = "ssoroka78@gmail.com".freeze
|
17
|
+
s.executables = ["scheduler_daemon".freeze]
|
16
18
|
s.extra_rdoc_files = [
|
17
19
|
"README.markdown"
|
18
20
|
]
|
@@ -38,42 +40,25 @@ Gem::Specification.new do |s|
|
|
38
40
|
"lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb",
|
39
41
|
"lib/scheduler_daemon/rails/railtie.rb",
|
40
42
|
"lib/scheduler_daemon/scheduler_task.rb",
|
43
|
+
"scheduler_daemon-1.1.5.gem",
|
41
44
|
"scheduler_daemon.gemspec",
|
42
45
|
"spec/command_line_args_to_hash_spec.rb",
|
43
46
|
"spec/scheduled_tasks/session_cleaner_task_spec.rb",
|
44
47
|
"spec/scheduler_spec.rb",
|
45
48
|
"spec/spec_helper.rb"
|
46
49
|
]
|
47
|
-
s.homepage = "http://github.com/ssoroka/scheduler_daemon"
|
48
|
-
s.
|
49
|
-
s.
|
50
|
-
s.summary = "Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes"
|
50
|
+
s.homepage = "http://github.com/ssoroka/scheduler_daemon".freeze
|
51
|
+
s.rubygems_version = "3.4.5".freeze
|
52
|
+
s.summary = "Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon is made specifically for your Rails app, and only loads the environment once, no matter how many tasks run. What's so great about it? Well, I'm glad you asked! - Only loads your Rails environment once on daemon start, not every time a task is run - Allows you to easily deploy the scheduled tasks with your Rails app instead of depending on an administrator to update crontab - It doesn't use rake or cron! - Gets you up and running with your own daemon in under 2 minutes".freeze
|
51
53
|
|
52
|
-
|
53
|
-
s.specification_version = 3
|
54
|
+
s.specification_version = 4
|
54
55
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
else
|
63
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
64
|
-
s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
|
65
|
-
s.add_dependency(%q<daemons>, [">= 1.0.10"])
|
66
|
-
s.add_dependency(%q<rufus-scheduler>, ["~> 2.0.24"])
|
67
|
-
s.add_dependency(%q<chronic>, [">= 0.2.0"])
|
68
|
-
s.add_dependency(%q<rspec>, ["~> 2.13.0"])
|
69
|
-
end
|
70
|
-
else
|
71
|
-
s.add_dependency(%q<activesupport>, [">= 0"])
|
72
|
-
s.add_dependency(%q<eventmachine>, [">= 0.12.8"])
|
73
|
-
s.add_dependency(%q<daemons>, [">= 1.0.10"])
|
74
|
-
s.add_dependency(%q<rufus-scheduler>, ["~> 2.0.24"])
|
75
|
-
s.add_dependency(%q<chronic>, [">= 0.2.0"])
|
76
|
-
s.add_dependency(%q<rspec>, ["~> 2.13.0"])
|
77
|
-
end
|
56
|
+
s.add_runtime_dependency(%q<scheduler_daemon>.freeze, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.12.0"])
|
58
|
+
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
|
59
|
+
s.add_runtime_dependency(%q<eventmachine>.freeze, [">= 0.12.8"])
|
60
|
+
s.add_runtime_dependency(%q<daemons>.freeze, [">= 1.0.10"])
|
61
|
+
s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 2.0.24"])
|
62
|
+
s.add_runtime_dependency(%q<chronic>.freeze, [">= 0.2.0"])
|
78
63
|
end
|
79
64
|
|
@@ -4,23 +4,23 @@ require 'scheduler_daemon/command_line_args_to_hash'
|
|
4
4
|
describe CommandLineArgsToHash do
|
5
5
|
it 'should process arguments' do
|
6
6
|
h = CommandLineArgsToHash.parse(['--hello'])
|
7
|
-
h['hello'].
|
7
|
+
expect(h['hello']).to eq true
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
it 'should change key names with - to _' do
|
11
11
|
h = CommandLineArgsToHash.parse(['--hi-there'])
|
12
|
-
h['hi_there'].
|
12
|
+
expect(h['hi_there']).to eq true
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
it 'should play nice with array args' do
|
16
16
|
h = CommandLineArgsToHash.parse(['--only=one,two,three'], :array_args => 'only')
|
17
|
-
h['only'].
|
17
|
+
expect(h['only']).to eq %w(one two three)
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
it 'should handle multiple args ok' do
|
21
21
|
h = CommandLineArgsToHash.parse(['--one', '--two=three'])
|
22
|
-
h['one'].
|
23
|
-
h['two'].
|
22
|
+
expect(h['one']).to eq true
|
23
|
+
expect(h['two']).to eq 'three'
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
end
|
@@ -9,7 +9,7 @@ require 'scheduler_daemon/rails/generators/scheduler/templates/lib/scheduled_tas
|
|
9
9
|
describe SessionCleanerTask do
|
10
10
|
before(:each) do
|
11
11
|
@task = SessionCleanerTask.new
|
12
|
-
@task.
|
12
|
+
# expect(@task).to receive(:log)
|
13
13
|
end
|
14
14
|
|
15
15
|
it "should remove old sessions" do
|
@@ -25,11 +25,12 @@ describe SessionCleanerTask do
|
|
25
25
|
ActiveRecord::Base.connection.select_one(%(select count(*) as count from #{@task.session_table_name}))['count'].to_i
|
26
26
|
}
|
27
27
|
|
28
|
-
lambda {
|
28
|
+
expect(lambda {
|
29
29
|
@task.run
|
30
|
-
}.
|
30
|
+
}).to change(get_session_count, :call).by_at_most(-1)
|
31
31
|
else
|
32
32
|
pending 'skipping SessionCleanerTask test since it depends on rails and ActiveRecord::SessionStore; try copying this spec to your rails application.'
|
33
|
+
raise 'skipping'
|
33
34
|
end
|
34
35
|
end
|
35
|
-
end
|
36
|
+
end
|
data/spec/scheduler_spec.rb
CHANGED
@@ -4,18 +4,18 @@ require 'scheduler_daemon/base'
|
|
4
4
|
describe Scheduler::Base do
|
5
5
|
before(:each) do
|
6
6
|
@scheduler = Scheduler::Base.new(:skip_init => true, :silent => true)
|
7
|
-
@scheduler.stub(:log)
|
7
|
+
# @scheduler.stub(:log)
|
8
8
|
end
|
9
9
|
|
10
10
|
describe 'decide_what_to_run' do
|
11
11
|
it "should support --only" do
|
12
12
|
@scheduler = Scheduler::Base.new({:skip_init => true, :silent => true}, ['--only=alphabets'])
|
13
|
-
@scheduler.options['only'].
|
13
|
+
expect(@scheduler.options['only']).to eq ['alphabets']
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should support --except" do
|
17
17
|
@scheduler = Scheduler::Base.new({:skip_init => true, :silent => true}, ['--except=balloons,monkeys'])
|
18
|
-
@scheduler.options['except'].
|
18
|
+
expect(@scheduler.options['except']).to eq ['balloons', 'monkeys']
|
19
19
|
end
|
20
20
|
end
|
21
|
-
end
|
21
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scheduler_daemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Soroka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: scheduler_daemon
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.12.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.12.0
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: activesupport
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +108,6 @@ dependencies:
|
|
80
108
|
- - ">="
|
81
109
|
- !ruby/object:Gem::Version
|
82
110
|
version: 0.2.0
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rspec
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 2.13.0
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 2.13.0
|
97
111
|
description: a Rails 2.3, Rails 3, and Ruby compatible scheduler daemon. Replaces
|
98
112
|
cron/rake pattern of periodically running rake tasks to perform maintenance tasks,
|
99
113
|
only loading the environment ONCE.
|
@@ -125,6 +139,7 @@ files:
|
|
125
139
|
- lib/scheduler_daemon/rails/generators/scheduler_task/templates/scheduled_tasks/example_task.rb
|
126
140
|
- lib/scheduler_daemon/rails/railtie.rb
|
127
141
|
- lib/scheduler_daemon/scheduler_task.rb
|
142
|
+
- scheduler_daemon-1.1.5.gem
|
128
143
|
- scheduler_daemon.gemspec
|
129
144
|
- spec/command_line_args_to_hash_spec.rb
|
130
145
|
- spec/scheduled_tasks/session_cleaner_task_spec.rb
|
@@ -148,9 +163,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
163
|
- !ruby/object:Gem::Version
|
149
164
|
version: '0'
|
150
165
|
requirements: []
|
151
|
-
rubygems_version: 3.4.
|
166
|
+
rubygems_version: 3.4.5
|
152
167
|
signing_key:
|
153
|
-
specification_version:
|
168
|
+
specification_version: 4
|
154
169
|
summary: Rails 3 compatible scheduler daemon. Replaces cron/rake pattern of periodically
|
155
170
|
running rake tasks to perform maintenance tasks in Rails apps. Scheduler Daemon
|
156
171
|
is made specifically for your Rails app, and only loads the environment once, no
|