mutx 0.1.26 → 0.1.27

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e856163b512f027c00a5f1e005ae1837f4dd2319
4
- data.tar.gz: d9f7dfca99da92ceb2cf57559ec71ebe4d508fa7
3
+ metadata.gz: ecd5479d54587ad777d166a8e0987d6cae8e8a19
4
+ data.tar.gz: 54ba6417db9d8663cb95644de99d6e5f3633a96b
5
5
  SHA512:
6
- metadata.gz: cedb4fe27800291ce61fb7834f1bffc157af1a9f796d940ef37bd5d40a1e1a9b7af16863378963df0019b370dac16aac4fb787a6edbd95d40438e2cf314cafd4
7
- data.tar.gz: dcd49bf7ecb6d34ac8d8e3e882d765866931053dce7c0d85c71677996dad492f09cb9d82778dec8e3908eae96e2801fa098d6a3eed5e75082468c9109722a8d7
6
+ metadata.gz: 063929ac2821e7a3997210805bccb585cd78eda5429650967b4582b1a3231e7a4d4cfcac5217fb6713752236dba3ace33adca080ab5332d782364706e82c17f8
7
+ data.tar.gz: eebf8e47288ccafb46caf7ca497c53e639ff7ee938e5e19eb9943dbd2bc8f03527dfabb75a8024bdfe90d9c2ac299ed3064f2504446d31413cad9f74c6a48822
@@ -1,5 +1,6 @@
1
1
  require 'mutx'
2
2
  require 'chronic'
3
+ require 'byebug'
3
4
 
4
5
  module Cron
5
6
  class Tasks
@@ -7,53 +8,34 @@ module Cron
7
8
  def self.cron_jobs
8
9
  @days = [:mo,:tu,:we,:th,:fr,:sa,:su]
9
10
  cron_tasks_list = Mutx::Database::MongoConnector.cron_tasks
10
- @none_day = true
11
11
  @today = day_name #name of today
12
12
 
13
13
  @now_time = Time.now.hour.to_s+":"+Time.now.min.to_s
14
14
 
15
15
  cron_tasks_list.each do |task|
16
- @days.detect{|day| @none_day = "task_with_day" if task[:"#{day}"]}
17
-
18
- # If no day execution is seted, works as always
19
- if (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) &&
20
- (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) &&
21
- (@none_day.eql? true))
22
-
23
- query_string = {}
24
- query_string = {"execution_name"=>"CRONNED-#{task[:cron_time]}-min"}
25
- task_name = task[:name]
26
- task_name.gsub!("%20"," ")
27
- puts Mutx::API::Tasks.cron_update task
28
- Mutx::API::Execution.start task_name, query_string
29
- # If there is a day seted, and that day is today, and no execution time is seted
30
- elsif (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) &&
31
- (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) &&
32
- (@none_day.eql? "task_with_day") && (task[:"#{@today}"].eql? "on") &&
33
- (task[:start_time].empty?) && (task[:stop_time].empty?))
34
-
35
- query_string = {}
36
- query_string = {"execution_name"=>"CRONNED-#{task[:cron_time]}-min"}
37
- task_name = task[:name]
38
- task_name.gsub!("%20"," ")
39
- puts Mutx::API::Tasks.cron_update task
40
- Mutx::API::Execution.start task_name, query_string
41
-
42
- # If there is a day seted, and that day is today, and execution range time is seted
43
- elsif (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) &&
44
- (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) &&
45
- (@none_day.eql? "task_with_day") && (task[:"#{@today}"].eql? "on") &&
46
- (@now_time.between? task[:start_time], task[:stop_time]))
47
-
48
- query_string = {}
49
- query_string = {"execution_name"=>"CRONNED-#{task[:cron_time]}-min"}
50
- task_name = task[:name]
51
- task_name.gsub!("%20"," ")
52
- puts Mutx::API::Tasks.cron_update task
53
- Mutx::API::Execution.start task_name, query_string
54
- end#if
55
-
56
- end
16
+ @none_day = true
17
+ run = nil
18
+ started = nil
19
+ running = nil
20
+
21
+ run = Mutx::Database::MongoConnector.running_for_task task[:name]
22
+ started = Mutx::Database::MongoConnector.only_started_for_task task[:name]
23
+ running = Mutx::Database::MongoConnector.only_running_for_task task[:name]
24
+
25
+ if ((run.empty?) && (started.empty?) && (running.empty?))#verify if task is not running or started
26
+ validate_and_execute task
27
+ elsif !started.empty?
28
+ puts
29
+ puts "Deleting: #{task[:name]} because is started, but not running"
30
+ puts
31
+ delete_started started
32
+ else #task is running
33
+ puts
34
+ puts "Task: #{task[:name]} running"
35
+ puts
36
+ end
37
+
38
+ end#cron_task
57
39
  Mutx::Database::MongoConnector.force_close
58
40
  end
59
41
 
@@ -68,7 +50,84 @@ module Cron
68
50
  return "sa" if num.eql? 6
69
51
  return "su" if num.eql? 7
70
52
  end
53
+
54
+ def self.execute task
55
+ query_string = {}
56
+ query_string = {"execution_name"=>"CRONNED-#{task[:cron_time]}-min"}
57
+ task_name = task[:name]
58
+ task_name.gsub!("%20"," ")
59
+ puts
60
+ puts "EXECUTING: #{task_name} right now"
61
+ puts
62
+ puts Mutx::API::Tasks.cron_update task
63
+ Mutx::API::Execution.start task_name, query_string
64
+ end
65
+
66
+ def self.check_range_time task
67
+ init_hour = task[:start_time].match(/(\d*)/)[0]
68
+ stop_hour = task[:stop_time].match(/(\d*)/)[0]
69
+ @valid_hours_init = nil
70
+ @valid_hours_stop = nil
71
+ @valid = nil
72
+
73
+ @valid_hours_init = [init_hour.to_i]
74
+ (24-init_hour.to_i).times do
75
+ if @valid_hours_init.last.eql? 23
76
+ @valid_hours_init << 00
77
+ else
78
+ @valid_hours_init << @valid_hours_init.last + 1
79
+ end
80
+ end
81
+
82
+ @valid_hours_stop = [stop_hour.to_i]
83
+ (stop_hour.to_i-1).times do
84
+ @valid_hours_stop << @valid_hours_stop.last - 1
85
+ end
86
+
87
+ @valid = @valid_hours_init + @valid_hours_stop.reverse
88
+ @valid.pop
89
+
90
+ if @valid.include? @now_time.match(/(\d*)/)[0].to_i
91
+ puts
92
+ puts @valid
93
+ puts @now_time
94
+ execute task
95
+ else
96
+ puts
97
+ puts @valid
98
+ puts "Actual time: #{@now_time}"
99
+ puts "ACTUAL TIME IS OUT OF RANGE FOR: #{task[:name]}"
100
+ end
101
+ end
102
+
103
+ def self.validate_and_execute task
104
+
105
+ @days.detect{|day| @none_day = "task_with_day" if task[:"#{day}"]}
106
+
107
+ # If no day execution is seted, works as always
108
+ if (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) && (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) && (@none_day.eql? true))
109
+ execute task
110
+ # If there is a day seted, and that day is today, and no execution time is seted
111
+ elsif (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) && (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) && (@none_day.eql? "task_with_day") && (task[:"#{@today}"].eql? "on") && (task[:start_time].empty?) && (task[:stop_time].empty?))
112
+ execute task
113
+ # If there is a day seted, and that day is today, and execution range time is seted
114
+ elsif (((!task[:cron_time].eql? "") && (!task[:cron_time].eql? "0")) && (((Time.now.utc - task[:last_exec_time].utc) + 1) >= (task[:cron_time].to_i * 60)) && (@none_day.eql? "task_with_day") && (task[:"#{@today}"].eql? "on") && (task[:start_time]) && (task[:stop_time]) )
115
+ if task[:start_time] > task[:stop_time] #initial time is greater than stop time
116
+ check_range_time task
117
+ elsif (@now_time.between? task[:start_time], task[:stop_time]) #stop time is greater than initial time
118
+ execute task
119
+ end
120
+ end#if
121
+
122
+ end#validate
123
+
124
+ def self.delete_started started_task
125
+ started_task.each do |task|
126
+ Mutx::Database::MongoConnector.delete_started_result task["_id"]
127
+ end
128
+ end#delete_started
129
+
71
130
  end#class
72
131
  end#module
73
132
 
74
- Cron::Tasks.cron_jobs
133
+ Cron::Tasks.cron_jobs
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Rodriguez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor