task_scheduler 1.0.1 → 1.0.2
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/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: []
|