schedulero 0.2.3 → 0.2.4

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.
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