Skip to content

Commit 218e2a6

Browse files
committed
always create a new redis connection with Resque.create_connection
1 parent b0c7093 commit 218e2a6

File tree

3 files changed

+39
-4
lines changed

3 files changed

+39
-4
lines changed

lib/resque.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,17 @@ def create_connection(server = Resque.server)
6161

6262
Redis::Namespace.new(namespace, :redis => redis)
6363
when Redis::Namespace
64-
server
64+
Redis::Namespace.new(server.namespace,
65+
:redis => Redis.new(:host => server.redis.client.host,
66+
:port => server.redis.client.port,
67+
:db => server.redis.client.db,
68+
:thread_safe => true))
6569
else
66-
Redis::Namespace.new(:resque, :redis => server)
70+
Redis::Namespace.new(:resque,
71+
:redis => Redis.new(:host => server.client.host,
72+
:port => server.client.port,
73+
:db => server.client.db,
74+
:thread_safe => true))
6775
end
6876
end
6977

resque.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
2121
s.extra_rdoc_files = [ "LICENSE", "README.markdown" ]
2222
s.rdoc_options = ["--charset=UTF-8"]
2323

24-
s.add_dependency "redis-namespace", "~> 1.2"
24+
s.add_dependency "redis-namespace", "~> 1.2.1"
2525
s.add_dependency "vegas", "~> 0.1.2"
2626
s.add_dependency "sinatra", ">= 0.9.2"
2727
s.add_dependency "multi_json", "~> 1.0"

test/resque_test.rb

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,34 @@
2525
new_redis = Redis.new(:host => "localhost", :port => 9736)
2626
new_namespace = Redis::Namespace.new("namespace", :redis => new_redis)
2727
Resque.redis = new_namespace
28-
assert_equal new_namespace, Resque.redis
28+
29+
assert_equal new_namespace.namespace, Resque.redis.namespace
30+
[:db, :host, :port].each do |part|
31+
assert_equal new_namespace.redis.client.send(part), Resque.redis.client.send(part)
32+
end
33+
end
34+
35+
describe "#create_connection" do
36+
it "always creates a new connection with a Redis::Namespace" do
37+
new_redis = Redis.new(:host => "localhost", :port => 9736)
38+
namespace = Redis::Namespace.new("namespace", :redis => new_redis)
39+
new_connection = Resque.create_connection(namespace)
40+
41+
refute_equal namespace, new_connection
42+
assert_equal "namespace", new_connection.namespace
43+
[:db, :host, :port].each do |part|
44+
assert_equal namespace.redis.client.send(part), new_connection.redis.client.send(part)
45+
end
46+
end
47+
48+
it "always creates a new connection with a Redis object" do
49+
new_redis = Redis.new(:host => "localhost", :port => 9736)
50+
new_connection = Resque.create_connection(new_redis)
51+
refute_equal new_connection.redis, new_redis
52+
[:db, :host, :port].each do |part|
53+
assert_equal new_redis.client.send(part), new_connection.redis.client.send(part)
54+
end
55+
end
2956
end
3057

3158
it "can put jobs on a queue" do

0 commit comments

Comments
 (0)