x_runtime 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -13,6 +13,8 @@ XRuntime是一个Rack的middleware,配合Redis用来分析Http Server每个URI
13
13
  * 最近一次请求时间
14
14
  * 平均请求时间
15
15
 
16
+ 当请求积累到50次后,通过pipeline机制一次将数据插入Redis,避免每次请求都访问一下Redis.
17
+
16
18
  ## Portal
17
19
 
18
20
  可以访问Http Server的这个URL来实时查看当前记录的请求:[/xruntime](/xruntime)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -8,6 +8,9 @@ module XRuntime
8
8
  @key_amount = "#{@key}::Amount"
9
9
  @key_average = "#{@key}::Average"
10
10
  @script = script
11
+ # 预先加载Lua脚本
12
+ @script.sha
13
+ @data = []
11
14
  end
12
15
 
13
16
  # {key => {:score => score, :count => count, :average => average}}
@@ -40,7 +43,15 @@ module XRuntime
40
43
  end
41
44
 
42
45
  def add(member, score)
43
- @script.evalsha([@key], [member, score])
46
+ @data.push([member, score])
47
+ # 如果@data数据达到一定数量,则一起插入redis
48
+ if @data.size >= 50
49
+ @script.redis.multi do
50
+ while (data = @data.pop) do
51
+ @script.evalsha([@key], [data[0], data[1]])
52
+ end
53
+ end
54
+ end
44
55
  end
45
56
  end#end of DataSet
46
57
  end
data/x_runtime.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "x_runtime"
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["\u{5d14}\u{5ce5}"]
12
- s.date = "2012-08-20"
12
+ s.date = "2012-08-21"
13
13
  s.description = "\u{7531}\u{4e8e}\u{4f7f}\u{7528}\u{5230}Redis\u{7684}lua script,\u{6240}\u{4ee5}\u{9700}\u{8981}\u{4f60}\u{7684}Redis\u{670d}\u{52a1}\u{652f}\u{6301},redis-server\u{7248}\u{672c}>2.6.x,redis(ruby gem)>3.0.1."
14
14
  s.email = "zheng.cuizh@gmail.com"
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: x_runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-20 00:00:00.000000000 Z
12
+ date: 2012-08-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: 3835881030075432585
123
+ hash: -1959727388660971021
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  none: false
126
126
  requirements: