remcached 0.3.1 → 0.4.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/VERSION.yml +2 -2
- data/examples/fill.rb +3 -3
- data/lib/remcached/client.rb +22 -0
- data/lib/remcached/const.rb +1 -0
- data/lib/remcached/packet.rb +6 -0
- data/remcached.gemspec +4 -4
- data/spec/client_spec.rb +10 -0
- metadata +3 -3
data/VERSION.yml
CHANGED
data/examples/fill.rb
CHANGED
@@ -3,9 +3,9 @@
|
|
3
3
|
# Experimentally determine how many items fit in your memcached
|
4
4
|
# instance. Adjust parameters below for your scenario.
|
5
5
|
|
6
|
-
BATCH_SIZE =
|
7
|
-
KEY_SIZE =
|
8
|
-
VALUE_SIZE =
|
6
|
+
BATCH_SIZE = 10000
|
7
|
+
KEY_SIZE = 26
|
8
|
+
VALUE_SIZE = 0
|
9
9
|
|
10
10
|
|
11
11
|
$: << File.dirname(__FILE__) + "/../lib"
|
data/lib/remcached/client.rb
CHANGED
@@ -28,27 +28,45 @@ module Memcached
|
|
28
28
|
@recv_buf = ""
|
29
29
|
@recv_state = :header
|
30
30
|
@connected = false
|
31
|
+
@keepalive_timer = nil
|
31
32
|
end
|
32
33
|
|
33
34
|
def connection_completed
|
34
35
|
@connected = true
|
35
36
|
@connect_deferrable.succeed(self)
|
37
|
+
|
38
|
+
@last_receive = Time.now
|
39
|
+
@keepalive_timer = EventMachine::PeriodicTimer.new(1, &method(:keepalive))
|
36
40
|
end
|
37
41
|
|
38
42
|
RECONNECT_DELAY = 10
|
39
43
|
RECONNECT_JITTER = 5
|
40
44
|
def unbind
|
45
|
+
@keepalive_timer.cancel if @keepalive_timer
|
46
|
+
|
41
47
|
@connected = false
|
42
48
|
EventMachine::Timer.new(RECONNECT_DELAY + rand(RECONNECT_JITTER),
|
43
49
|
method(:reconnect))
|
44
50
|
end
|
45
51
|
|
52
|
+
RECEIVE_TIMEOUT = 15
|
53
|
+
KEEPALIVE_INTERVAL = 5
|
54
|
+
def keepalive
|
55
|
+
if @last_receive + RECEIVE_TIMEOUT <= Time.now
|
56
|
+
p :timeout
|
57
|
+
close_connection
|
58
|
+
elsif @last_receive + KEEPALIVE_INTERVAL <= Time.now
|
59
|
+
send_keepalive
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
46
63
|
def send_packet(pkt)
|
47
64
|
send_data pkt.to_s
|
48
65
|
end
|
49
66
|
|
50
67
|
def receive_data(data)
|
51
68
|
@recv_buf += data
|
69
|
+
@last_receive = Time.now
|
52
70
|
|
53
71
|
done = false
|
54
72
|
while not done
|
@@ -129,6 +147,10 @@ module Memcached
|
|
129
147
|
end
|
130
148
|
end
|
131
149
|
|
150
|
+
def send_keepalive
|
151
|
+
send_request Request::NoOp.new
|
152
|
+
end
|
153
|
+
|
132
154
|
# Callback will be called multiple times
|
133
155
|
def stats(contents={}, &callback)
|
134
156
|
send_request Request::Stats.new(contents) do |result|
|
data/lib/remcached/const.rb
CHANGED
data/lib/remcached/packet.rb
CHANGED
data/remcached.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{remcached}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Stephan Maka"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-14}
|
13
13
|
s.description = %q{Ruby EventMachine memcached client}
|
14
14
|
s.email = %q{astro@spaceboyz.net}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -37,9 +37,9 @@ Gem::Specification.new do |s|
|
|
37
37
|
s.rubygems_version = %q{1.3.5}
|
38
38
|
s.summary = %q{Ruby EventMachine memcached client}
|
39
39
|
s.test_files = [
|
40
|
-
"spec/
|
41
|
-
"spec/memcached_spec.rb",
|
40
|
+
"spec/memcached_spec.rb",
|
42
41
|
"spec/packet_spec.rb",
|
42
|
+
"spec/client_spec.rb",
|
43
43
|
"examples/fill.rb"
|
44
44
|
]
|
45
45
|
|
data/spec/client_spec.rb
CHANGED
@@ -33,4 +33,14 @@ describe Memcached::Client do
|
|
33
33
|
@stats.should include(*%w(pid uptime time version curr_connections total_connections))
|
34
34
|
end
|
35
35
|
end
|
36
|
+
|
37
|
+
=begin
|
38
|
+
it "should keep alive" do
|
39
|
+
run do
|
40
|
+
EM::Timer.new(30) do
|
41
|
+
stop
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
=end
|
36
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: remcached
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephan Maka
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-14 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -65,7 +65,7 @@ signing_key:
|
|
65
65
|
specification_version: 3
|
66
66
|
summary: Ruby EventMachine memcached client
|
67
67
|
test_files:
|
68
|
-
- spec/client_spec.rb
|
69
68
|
- spec/memcached_spec.rb
|
70
69
|
- spec/packet_spec.rb
|
70
|
+
- spec/client_spec.rb
|
71
71
|
- examples/fill.rb
|