task_scheduler 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/task_scheduler/scheduler.rb +5 -4
- data/lib/task_scheduler/version.rb +1 -1
- data/lib/task_scheduler/windows_scheduler.rb +20 -8
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 548d5cd005cf8f86e3ce5c26d83ebe9b22d0cabd
|
4
|
+
data.tar.gz: 0e7149e7338810207b716ed24bb22d803ebe15f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51424a5ddb77611fce08bba44e9c7d02ad601b4e95b6dd317a3095d3646bad109db11345a7ebcff9dc5e13e5077c9f68ee1377d9ec94bae5ba0db2cc45388d09
|
7
|
+
data.tar.gz: bd0c3a79aeab1097925e9148b457b77488ee424f13d0aa640938fecc76bd4c8bedb1fb5cb9fdb8f9f67bcd571f9fee2ed0f9b7e8233f7453768bde2dbc438235
|
@@ -4,11 +4,12 @@ module TaskScheduler
|
|
4
4
|
|
5
5
|
def self.included(base)
|
6
6
|
base.class_eval do
|
7
|
-
|
7
|
+
after_update :update_scheduled_task, if: 'OS.windows?'
|
8
8
|
after_create :create_scheduled_task, if: 'OS.windows?'
|
9
9
|
|
10
10
|
validates_presence_of :scheduler, :task_name, :rake_task_name, :import_at,
|
11
|
-
:import_time, :repeat_time, :repeat_type
|
11
|
+
:import_time, :repeat_time, :repeat_type, :username,
|
12
|
+
:password
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
@@ -18,7 +19,7 @@ module TaskScheduler
|
|
18
19
|
process_name = 'directory_auto_sync_scheduler.bat'
|
19
20
|
|
20
21
|
scheduler = WindowsScheduler.new(task_name, process_name)
|
21
|
-
task = scheduler.create_task(import_at, repeat_type, repeat_time,
|
22
|
+
task = scheduler.create_task(import_at, import_time, repeat_type, repeat_time, username, password, batch_params)
|
22
23
|
task.run
|
23
24
|
end
|
24
25
|
|
@@ -26,7 +27,7 @@ module TaskScheduler
|
|
26
27
|
process_name = 'directory_auto_sync_scheduler.bat'
|
27
28
|
|
28
29
|
scheduler = WindowsScheduler.new(task_name, process_name)
|
29
|
-
task = scheduler.update_task(import_at, repeat_type, repeat_time,
|
30
|
+
task = scheduler.update_task(import_at, import_time, repeat_type, repeat_time, username, password, batch_params)
|
30
31
|
task.run
|
31
32
|
end
|
32
33
|
end
|
@@ -17,24 +17,26 @@ module TaskScheduler
|
|
17
17
|
|
18
18
|
# creates a windows scheduled task via command line
|
19
19
|
#
|
20
|
-
def create_task(import_at, repeat_type, repeat_time, bat_params = nil)
|
20
|
+
def create_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params = nil)
|
21
21
|
io = StringIO.new
|
22
22
|
io << 'SchTasks /Create '
|
23
|
+
io << "/RU #{username} /RP #{password} "
|
23
24
|
if repeat_type && repeat_time
|
24
|
-
io << "/SC #{repeat_type} " # schedule frequency
|
25
|
+
io << "/SC #{get_schedule_type(repeat_type)} " # schedule frequency
|
25
26
|
io << "/MO #{repeat_time} " # time between runs
|
26
|
-
end
|
27
|
+
end
|
27
28
|
io << "/TN '#{task_name}' " # name of the task
|
28
29
|
io << "/TR '#{build_bat_params(bat_params)}' " # what to execute when task runs
|
29
|
-
io << "/ST '#{
|
30
|
+
io << "/ST '#{import_time.strftime('%H:%M')}' " if import_time # start time
|
31
|
+
io << "/SD '#{import_at.strftime('%m/%d/%Y')}'" if import_at # start date
|
30
32
|
io
|
31
33
|
end
|
32
34
|
|
33
35
|
# updates a windows scheuled task via the command line
|
34
36
|
#
|
35
|
-
def update_task(import_at, repeat_type, repeat_time, bat_params = nil)
|
37
|
+
def update_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params = nil)
|
36
38
|
delete_task&.run
|
37
|
-
create_task(import_at, repeat_type, repeat_time, bat_params)
|
39
|
+
create_task(import_at, import_time, repeat_type, repeat_time, username, password, bat_params)
|
38
40
|
end
|
39
41
|
|
40
42
|
def delete_task
|
@@ -46,16 +48,26 @@ module TaskScheduler
|
|
46
48
|
|
47
49
|
def build_bat_params(bat_params)
|
48
50
|
io = StringIO.new
|
49
|
-
io << "#{File.join(File.dirname(__FILE__), 'task_runner.bat')}
|
51
|
+
io << "#{File.join(File.expand_path('..', File.dirname(__FILE__)), 'task_runner.bat')}"
|
50
52
|
|
51
53
|
return io.string unless bat_params
|
52
54
|
|
53
|
-
io << "#{Rails.root} " # first param so the bat file knows where to cd into
|
55
|
+
io << " #{Rails.root} " # first param so the bat file knows where to cd into
|
54
56
|
bat_params.each do |_param_name, value|
|
55
57
|
io << "#{value} "
|
56
58
|
end
|
57
59
|
io.string
|
58
60
|
end
|
61
|
+
|
62
|
+
def get_schedule_type(type)
|
63
|
+
if type == 'minutes'
|
64
|
+
'MINUTE'
|
65
|
+
elsif type == 'hours'
|
66
|
+
'HOURLY'
|
67
|
+
elsif type == 'days'
|
68
|
+
'DAILY'
|
69
|
+
end
|
70
|
+
end
|
59
71
|
end
|
60
72
|
end
|
61
73
|
|
metadata
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: task_scheduler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Corey Votta
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
17
|
- - "~>"
|
@@ -19,9 +20,8 @@ dependencies:
|
|
19
20
|
- - ">="
|
20
21
|
- !ruby/object:Gem::Version
|
21
22
|
version: 4.2.0
|
22
|
-
name: rails
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
24
|
+
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - "~>"
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: 4.2.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
+
name: os
|
34
35
|
requirement: !ruby/object:Gem::Requirement
|
35
36
|
requirements:
|
36
37
|
- - "~>"
|
37
38
|
- !ruby/object:Gem::Version
|
38
39
|
version: '0'
|
39
|
-
name: os
|
40
|
-
prerelease: false
|
41
40
|
type: :runtime
|
41
|
+
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
44
|
- - "~>"
|
@@ -59,11 +59,11 @@ files:
|
|
59
59
|
- lib/task_scheduler/scheduler.rb
|
60
60
|
- lib/task_scheduler/version.rb
|
61
61
|
- lib/task_scheduler/windows_scheduler.rb
|
62
|
-
homepage:
|
62
|
+
homepage:
|
63
63
|
licenses:
|
64
64
|
- MIT
|
65
65
|
metadata: {}
|
66
|
-
post_install_message:
|
66
|
+
post_install_message:
|
67
67
|
rdoc_options: []
|
68
68
|
require_paths:
|
69
69
|
- lib
|
@@ -78,9 +78,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
|
-
rubyforge_project:
|
82
|
-
rubygems_version: 2.6.
|
83
|
-
signing_key:
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 2.6.12
|
83
|
+
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: Creates scheduled tasks via the windows task scheduler
|
86
86
|
test_files: []
|