highwatermark 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -4
- data/lib/highwatermark/version.rb +1 -1
- data/lib/highwatermark.rb +19 -11
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6837c0694bb9f29f4708ae5998a8368dbec1e6cb
|
4
|
+
data.tar.gz: ead1e5d238bc2d39297b132c1d1518d457d424a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 842a1d1b2247328656a0bbcc55c3de0f3a1ae83abe3ba54ee677dfeefd04dd851ad261a886189f316c54b896aa91820feafcc3ad4d62c80ecf7ede7dcbcbb802
|
7
|
+
data.tar.gz: d8eecbc421d6067f634ec8eea7fc9c4fab74a62c977945218667042d795cf6605a390e38a8f46e3b52e5b92e87b3a080b1063d1b1f12700abde2f83e52afaabd
|
data/README.md
CHANGED
@@ -31,14 +31,14 @@ path = "/path/to/state/file/or/redis/conf" # the file path for store state or
|
|
31
31
|
state_type = "file" # state_type: could be <redis/file/memory>
|
32
32
|
tag = "your tag" # tag: is the tag that will be used in state file or redis
|
33
33
|
|
34
|
-
hwm = Highwatermark::HighWaterMark.new(path, state_type
|
34
|
+
hwm = Highwatermark::HighWaterMark.new(path, state_type)
|
35
35
|
|
36
36
|
# To store time in high watermark
|
37
37
|
time = "what your want to store in high watermark"
|
38
|
-
hwm.update_records(time)
|
38
|
+
hwm.update_records(time, tag)
|
39
39
|
|
40
40
|
# To get the high watermark
|
41
|
-
hwm.last_records()
|
41
|
+
hwm.last_records(tag)
|
42
42
|
|
43
43
|
```
|
44
44
|
|
@@ -49,7 +49,17 @@ Example of redis.conf (if set state_type = 'redis'):
|
|
49
49
|
host: 127.0.0.1
|
50
50
|
port: 6379
|
51
51
|
|
52
|
-
```
|
52
|
+
```
|
53
|
+
|
54
|
+
Output in the state file:
|
55
|
+
|
56
|
+
```
|
57
|
+
---
|
58
|
+
last_records:
|
59
|
+
your tag: 1429572200
|
60
|
+
|
61
|
+
```
|
62
|
+
|
53
63
|
|
54
64
|
## Test
|
55
65
|
|
data/lib/highwatermark.rb
CHANGED
@@ -2,7 +2,8 @@ require "highwatermark/version"
|
|
2
2
|
|
3
3
|
module Highwatermark
|
4
4
|
class HighWaterMark
|
5
|
-
def initialize(path,state_type,tag)
|
5
|
+
# def initialize(path,state_type,tag)
|
6
|
+
def initialize(path,state_type)
|
6
7
|
# path: is th file path for store state or the redis configure
|
7
8
|
# state_type: could be <redis/file/memory>
|
8
9
|
# tag: is the tag that will be used in state file or redis
|
@@ -12,12 +13,13 @@ module Highwatermark
|
|
12
13
|
require 'pp'
|
13
14
|
@path = path
|
14
15
|
@state_type = state_type
|
15
|
-
@tag = tag
|
16
|
+
# @tag = tag
|
16
17
|
|
17
18
|
@data = {}
|
18
19
|
if @state_type =='file'
|
19
20
|
if File.exists?(path)
|
20
21
|
@data = YAML.load_file(path)
|
22
|
+
pp @data
|
21
23
|
if @data == false || @data == []
|
22
24
|
# this happens if an users created an empty file accidentally
|
23
25
|
@data = {}
|
@@ -48,18 +50,24 @@ module Highwatermark
|
|
48
50
|
end
|
49
51
|
@data = {}
|
50
52
|
end # end of checking @state_type
|
51
|
-
|
53
|
+
|
54
|
+
if @data['last_records']==nil
|
55
|
+
@data['last_records'] = {}
|
56
|
+
end
|
57
|
+
|
52
58
|
end # end of intitialize
|
53
59
|
|
54
|
-
def last_records()
|
60
|
+
def last_records(tag)
|
55
61
|
if @state_type == 'file'
|
56
62
|
# return @data[@tag]
|
57
|
-
|
63
|
+
# pp @data['last_records'][tag]
|
64
|
+
return @data['last_records'][tag]
|
65
|
+
|
58
66
|
elsif @state_type =='memory'
|
59
|
-
return @data['last_records'][
|
67
|
+
return @data['last_records'][tag]
|
60
68
|
elsif @state_type =='redis'
|
61
69
|
begin
|
62
|
-
alertStart=$redis.get(
|
70
|
+
alertStart=$redis.get(tag)
|
63
71
|
return alertStart
|
64
72
|
rescue Exception => e
|
65
73
|
pp e.message
|
@@ -68,20 +76,20 @@ module Highwatermark
|
|
68
76
|
end
|
69
77
|
end
|
70
78
|
|
71
|
-
def update_records(time)
|
79
|
+
def update_records(time, tag)
|
72
80
|
if @state_type == 'file'
|
73
81
|
# @data[@tag] = time
|
74
|
-
@data['last_records'][
|
82
|
+
@data['last_records'][tag] = time
|
75
83
|
# $log.info @data
|
76
84
|
File.open(@path, 'w') {|f|
|
77
85
|
f.write YAML.dump(@data)
|
78
86
|
}
|
79
87
|
elsif @state_type =='memory'
|
80
|
-
@data['last_records'][
|
88
|
+
@data['last_records'][tag] = time
|
81
89
|
|
82
90
|
elsif @state_type =='redis'
|
83
91
|
begin
|
84
|
-
alertStart=$redis.set(
|
92
|
+
alertStart=$redis.set(tag,time)
|
85
93
|
rescue Exception => e
|
86
94
|
pp e.message
|
87
95
|
pp e.backtrace.inspect
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: highwatermark
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ling Zhang
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|