x_runtime 0.2.0 → 0.3.0

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