beetle 3.3.1 → 3.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/RELEASE_NOTES.rdoc +4 -0
- data/Rakefile +10 -2
- data/examples/README.rdoc +2 -2
- data/lib/beetle/queue_properties.rb +8 -3
- data/lib/beetle/version.rb +1 -1
- data/script/start_rabbit +3 -5
- data/test/beetle/queue_properties_test.rb +6 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7182d9c5ef7c4970ae13bbabe91b1fcdea45991fa85a4abb3f53cfca22597a88
|
4
|
+
data.tar.gz: 857b842d7c2b81ee95d374ef78d02fbe15bfbae585d6afa4988e848f1c31d164
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57fa3450b087d9221224e8d6700074f2ba00aef9a39cd77ffbb81709f72fa115c360f89b56741e3ece716e2d7300c5d3023ca2b4db16fd59135ac99c7dc881e3
|
7
|
+
data.tar.gz: d6acfd5c143adfb4ec75320265a1a29f97916344d2b041d5e5ee6cb023dac514b30e357a06b4ef9258847440b8ba6bfd8b938ab0df3400b3c696462fef7600ba
|
data/RELEASE_NOTES.rdoc
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
= Release Notes
|
2
2
|
|
3
|
+
== Version 3.3.2
|
4
|
+
* Changed order of queue policy application to avoid ahead of line blocking in dead letter
|
5
|
+
queues.
|
6
|
+
|
3
7
|
== Version 3.3.1
|
4
8
|
* It seems that there is a certain preference on connection level when
|
5
9
|
selecting the next message to process. We try to protect against
|
data/Rakefile
CHANGED
@@ -30,13 +30,15 @@ namespace :rabbit do
|
|
30
30
|
# on my machine, the rabbitmq user is not be allowed to access my files.
|
31
31
|
# so we need to put the config file under /tmp
|
32
32
|
config_file = "/tmp/beetle-testing-rabbitmq-#{node_name}"
|
33
|
-
|
34
33
|
create_config_file config_file, web_port
|
35
34
|
|
35
|
+
enabled_plugins_file = "/tmp/beetle-testing-rabbitmq-enabled-plugins-#{node_name}"
|
36
|
+
create_enabled_plugins_file enabled_plugins_file
|
37
|
+
|
36
38
|
puts "starting rabbit #{node_name} on port #{port}, web management port #{web_port}"
|
37
39
|
puts "type ^C a RETURN to abort"
|
38
40
|
sleep 1
|
39
|
-
exec "sudo #{script} #{node_name} #{port} #{config_file}"
|
41
|
+
exec "sudo #{script} #{node_name} #{port} #{config_file} #{enabled_plugins_file}"
|
40
42
|
end
|
41
43
|
|
42
44
|
def create_config_file(config_file, web_port)
|
@@ -48,6 +50,12 @@ namespace :rabbit do
|
|
48
50
|
end
|
49
51
|
end
|
50
52
|
|
53
|
+
def create_enabled_plugins_file(enabled_plugins_file)
|
54
|
+
File.open("#{enabled_plugins_file}",'w') do |f|
|
55
|
+
f.puts "[rabbitmq_management]."
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
51
59
|
desc "start rabbit instance 1"
|
52
60
|
task :start1 do
|
53
61
|
start "rabbit1", 5672, 15672
|
data/examples/README.rdoc
CHANGED
@@ -23,12 +23,17 @@ module Beetle
|
|
23
23
|
dead_letter_queue_name = options[:dead_letter_queue_name]
|
24
24
|
policy_options = options.slice(:lazy, :dead_lettering)
|
25
25
|
|
26
|
+
# The order of policy creation is important.
|
27
|
+
# We need to create the policy on the dead letter queue first to have the message_ttl setting
|
28
|
+
# in place before the first message comes in. Otherwise a message will not get a ttl
|
29
|
+
# applied and stay in the dead letter queue forever (or until manually consumed), thus
|
30
|
+
# blocking the head of the queue.
|
31
|
+
dead_letter_queue_options = policy_options.merge(:routing_key => target_queue, :message_ttl => options[:message_ttl])
|
32
|
+
set_queue_policy!(server, dead_letter_queue_name, dead_letter_queue_options)
|
26
33
|
target_queue_options = policy_options.merge(:routing_key => dead_letter_queue_name)
|
27
34
|
set_queue_policy!(server, target_queue, target_queue_options)
|
28
|
-
remove_obsolete_bindings(server, target_queue, options[:bindings]) if options.has_key?(:bindings)
|
29
35
|
|
30
|
-
|
31
|
-
set_queue_policy!(server, dead_letter_queue_name, dead_letter_queue_options)
|
36
|
+
remove_obsolete_bindings(server, target_queue, options[:bindings]) if options.has_key?(:bindings)
|
32
37
|
end
|
33
38
|
|
34
39
|
def set_queue_policy!(server, queue_name, options={})
|
data/lib/beetle/version.rb
CHANGED
data/script/start_rabbit
CHANGED
@@ -14,7 +14,7 @@ export RABBITMQ_NODENAME=$1
|
|
14
14
|
# combination. See clustering on a single machine guide at <http://www.rab-
|
15
15
|
# bitmq.com/clustering.html#single-machine> for details.
|
16
16
|
|
17
|
-
|
17
|
+
export RABBITMQ_NODE_IP_ADDRESS=localhost
|
18
18
|
# Defaults to 0.0.0.0. This can be changed if you only want to bind to one net-
|
19
19
|
# work interface.
|
20
20
|
|
@@ -22,11 +22,9 @@ export RABBITMQ_NODE_PORT=$2
|
|
22
22
|
# Defaults to 5672.
|
23
23
|
|
24
24
|
export RABBITMQ_CONFIG_FILE=$3
|
25
|
-
|
26
|
-
# Defaults to /etc/rabbitmq/rabbitmq_cluster.config. If this file is present it
|
27
|
-
# is used by the server to auto-configure a RabbitMQ cluster. See the clustering
|
28
|
-
# guide at <http://www.rabbitmq.com/clustering.html> for details.
|
25
|
+
export RABBITMQ_ENABLED_PLUGINS_FILE=$4
|
29
26
|
|
30
27
|
rabbitmq-server
|
31
28
|
|
32
29
|
rm -f $RABBITMQ_CONFIG_FILE
|
30
|
+
rm -f $RABBITMQ_ENABLED_PLUGINS_FILE
|
@@ -28,13 +28,15 @@ module Beetle
|
|
28
28
|
:queue_name => "QUEUE_NAME", :dead_letter_queue_name => "QUEUE_NAME_dead_letter",
|
29
29
|
:message_ttl => 10000
|
30
30
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
@queue_properties.expects(:set_queue_policy!).with("server", "QUEUE_NAME_dead_letter",
|
31
|
+
|
32
|
+
policies = sequence('policies')
|
33
|
+
@queue_properties.expects(:set_queue_policy!).in_sequence(policies).with("server", "QUEUE_NAME_dead_letter",
|
35
34
|
:lazy => true, :dead_lettering => true,
|
36
35
|
:routing_key => "QUEUE_NAME",
|
37
36
|
:message_ttl => 10000)
|
37
|
+
@queue_properties.expects(:set_queue_policy!).in_sequence(policies).with("server", "QUEUE_NAME",
|
38
|
+
:lazy => true, :dead_lettering => true,
|
39
|
+
:routing_key => "QUEUE_NAME_dead_letter")
|
38
40
|
@queue_properties.update_queue_properties!(options)
|
39
41
|
end
|
40
42
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beetle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Kaes
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2019-
|
15
|
+
date: 2019-11-22 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bunny
|
@@ -375,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
375
375
|
- !ruby/object:Gem::Version
|
376
376
|
version: 1.3.7
|
377
377
|
requirements: []
|
378
|
-
rubygems_version: 3.0.
|
378
|
+
rubygems_version: 3.0.6
|
379
379
|
signing_key:
|
380
380
|
specification_version: 3
|
381
381
|
summary: High Availability AMQP Messaging with Redundant Queues
|