schedulero 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/.version +1 -1
  3. data/lib/schedulero.rb +21 -14
  4. data/lib/utils.rb +4 -2
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2cfd26c98933e9a712a4352b8bae35e58e352389584db91bea451744d2b1ecb2
4
- data.tar.gz: 8f3781c8e20b9b054711de0f22531e047807565d21749ad94c69597f7b7df0e3
3
+ metadata.gz: 6d6f7879580da96f7997b9370e2fbb89eb00953cf95d3a7ad8f780424441270a
4
+ data.tar.gz: 22b56bd19dacf0bc0555c9168d07e807bac3c44694038e561d701e9e23fc19bb
5
5
  SHA512:
6
- metadata.gz: dcf894b27957183ccdeb7d2ca2a37902cfbe7a5093e5ecd752adc599e14e46ad13da55f66f0ffcef194d754ed01e43cb9d214f778528f48376830bf840b8584b
7
- data.tar.gz: 1e0d99eb6a9cafc56b40a7b88ceb479900f9e1aee3ac29cc487bbc2bf4062dc376d625c4a5a4cd6c9917886748f1945dd70659e4978597ba773d45fee8b8c94f
6
+ metadata.gz: 8abbd6fe761c7a6e9ea3786286e1cc86eab651dd57accfaa9bf0910c7d17a3a55d748553e841aff1141a83f8d7c6f83b40fc86e4f4c66f5deae46027d5bf97a4
7
+ data.tar.gz: 92abd0841e476cc83076dd833ab547392f9fe4e109842723451f3e702cf0d2a28e593dcaf0f96b4e820c60e7a8a048e70b58ebab0b1ed37bdddd8fc73045e128
data/.version CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
data/lib/schedulero.rb CHANGED
@@ -12,19 +12,21 @@ class Schedulero
12
12
 
13
13
  attr_reader :tasks, :logger
14
14
 
15
- def initialize state_file: nil, log_file: true
16
- init_log log_file
17
- init_state state_file
18
-
15
+ def initialize state_file: nil, log_file: true, silent: false
16
+ @silent = silent
19
17
  @tasks = {}
20
18
  @running = {}
21
19
  @count = 0
20
+
21
+ init_log log_file
22
+ init_state state_file
23
+
22
24
  end
23
25
 
24
26
  def init_state state_file
25
27
  # state file
26
28
  state_file ||= "./tmp/schedulero.json"
27
- puts 'State file: %s' % state_file
29
+ show 'State file: %s' % state_file
28
30
 
29
31
  @state_file = Pathname.new state_file
30
32
  @state_file.write '{}' unless @state_file.exist?
@@ -32,24 +34,29 @@ class Schedulero
32
34
 
33
35
  def init_log log_file
34
36
  # log file
35
- log_file = case log_file
37
+ @log_file = case log_file
36
38
  when String
37
39
  log_file
38
40
  when false
39
41
  nil
40
42
  else
41
- "./log/schedulero.log'"
43
+ "./log/schedulero.log"
42
44
  end
43
45
 
44
- puts 'Log file : %s' % log_file
46
+ show 'Log file : %s' % @log_file
45
47
 
46
- @logger = Logger.new log_file
48
+ @logger = Logger.new @log_file
47
49
  @logger.formatter = proc do |severity, datetime, progname, msg|
48
50
  severity = severity == 'INFO' ? '' : "(#{severity}) "
49
51
  "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}]: #{severity}#{msg}\n"
50
52
  end
51
53
  end
52
54
 
55
+ def show text
56
+ return if @silent
57
+ puts 'Schedulero: %s' % text
58
+ end
59
+
53
60
  # add task
54
61
  def every name, seconds, proc=nil, &block
55
62
  proc ||= block
@@ -65,7 +72,7 @@ class Schedulero
65
72
  def run_forever interval: 3
66
73
  Thread.new do
67
74
  loop do
68
- puts 'looping ...'
75
+ show 'looping ...'
69
76
  run
70
77
  sleep interval
71
78
  end
@@ -82,7 +89,7 @@ class Schedulero
82
89
 
83
90
  # if another process is controlling state, exit
84
91
  if state['_pid'] != Process.pid && diff < 10
85
- puts "Another process [#{state['_pid']}] is controlling state before #{diff} sec, skipping. I am (#{Process.pid})".red
92
+ show "Another process [#{state['_pid']}] is controlling state before #{diff} sec, skipping. I am (#{Process.pid})".red
86
93
  return
87
94
  end
88
95
 
@@ -108,7 +115,7 @@ class Schedulero
108
115
  state[name] = now
109
116
  safe_run block
110
117
  else
111
- puts 'skipping "%s" for %s' % [name, humanize_seconds(diff)]
118
+ show 'skipping "%s" for %s' % [name, humanize_seconds(diff)]
112
119
  end
113
120
  end
114
121
  end
@@ -123,7 +130,7 @@ class Schedulero
123
130
  def safe_run block
124
131
  name = block[:name]
125
132
 
126
- puts 'Running "%s"' % name.green
133
+ show 'Running "%s"' % name.green
127
134
  @logger.info 'Run: %s' % name
128
135
 
129
136
  if block[:running]
@@ -153,7 +160,7 @@ class Schedulero
153
160
  name
154
161
  end
155
162
 
156
- puts msg.red
163
+ show msg.red
157
164
 
158
165
  @logger.error(msg)
159
166
  end
data/lib/utils.rb CHANGED
@@ -17,12 +17,14 @@ class Schedulero
17
17
  data = ['Tasks:']
18
18
 
19
19
  for name, task in tasks
20
- data.push '- %s, every %s' % [name, humanize_seconds(task[:interval])]
20
+ at = task[:at] ? "at #{task[:at]}" : "every #{humanize_seconds(task[:interval])}"
21
+
22
+ data.push '- %s, %s' % [name, at]
21
23
  end
22
24
 
23
25
  data.push ['','###', '']
24
26
 
25
- data.push `tail -#{lines} ./log/schedulero.log`.split($/).reverse
27
+ data.push `tail -#{lines} #{@log_file}`.split($/).reverse if @log_file
26
28
 
27
29
  data.join($/)
28
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schedulero
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic