simple_qs 0.1.2 → 0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +9 -0
- data/README.md +44 -10
- data/TODO.md +1 -1
- data/lib/simple_qs.rb +6 -5
- data/lib/simple_qs/queue.rb +26 -1
- data/lib/version.rb +1 -1
- metadata +1 -2
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
+
## 0.2
|
2
|
+
|
3
|
+
Features:
|
4
|
+
|
5
|
+
- Add new SQS endpoints
|
6
|
+
- Add new support for MaximumMessageSize, MessageRetentionPeriod attributes for queue
|
7
|
+
|
1
8
|
## 0.1.2
|
2
9
|
|
3
10
|
Features:
|
11
|
+
|
4
12
|
- Add exists? class method to SimpleQS::Queue
|
5
13
|
- Add delete class method to SimpleQS::Queue
|
6
14
|
|
7
15
|
Bugfixes:
|
16
|
+
|
8
17
|
- Fix gemspec, gem now works as it should :)
|
data/README.md
CHANGED
@@ -15,13 +15,14 @@
|
|
15
15
|
|
16
16
|
You can select region for queue:
|
17
17
|
|
18
|
-
# :
|
19
|
-
# :us_west_1
|
20
|
-
# :eu_west_1
|
21
|
-
|
18
|
+
# :us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
19
|
+
# :us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
20
|
+
# :eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
21
|
+
# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
22
|
+
SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'
|
22
23
|
|
23
24
|
SimpleQS.host = :eu_west_1
|
24
|
-
SimpleQS.host # => 'eu-west-1.
|
25
|
+
SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'
|
25
26
|
|
26
27
|
### Queues ###
|
27
28
|
|
@@ -47,10 +48,22 @@ List all account's queues starting with 'test':
|
|
47
48
|
|
48
49
|
SimpleQS::Queue.list('test')
|
49
50
|
|
51
|
+
Check if queue exists:
|
52
|
+
|
53
|
+
SimpleQS::Queue.exists?('queue_name')
|
54
|
+
|
50
55
|
Change default visibility timeout for queue:
|
51
56
|
|
52
57
|
SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)
|
53
58
|
|
59
|
+
Change maximum message size for queue:
|
60
|
+
|
61
|
+
SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)
|
62
|
+
|
63
|
+
Change message retention period:
|
64
|
+
|
65
|
+
SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)
|
66
|
+
|
54
67
|
Set queue attributes:
|
55
68
|
|
56
69
|
SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})
|
@@ -74,6 +87,10 @@ Delete queue:
|
|
74
87
|
|
75
88
|
SimpleQS::Queue.new('queue_name').delete
|
76
89
|
|
90
|
+
Or:
|
91
|
+
|
92
|
+
SimpleQS::Queue.delete('queue_name')
|
93
|
+
|
77
94
|
### Messages ###
|
78
95
|
|
79
96
|
Send message:
|
@@ -141,13 +158,14 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
141
158
|
|
142
159
|
Можна обрати регіон, в якому буде створена черга:
|
143
160
|
|
144
|
-
# :
|
145
|
-
# :us_west_1
|
146
|
-
# :eu_west_1
|
147
|
-
|
161
|
+
# :us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
162
|
+
# :us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
163
|
+
# :eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
164
|
+
# :ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
165
|
+
SimpleQS.host # => 'sqs.us-east-1.amazonaws.com'
|
148
166
|
|
149
167
|
SimpleQS.host = :eu_west_1
|
150
|
-
SimpleQS.host # => 'eu-west-1.
|
168
|
+
SimpleQS.host # => 'sqs.eu-west-1.amazonaws.com'
|
151
169
|
|
152
170
|
### Черги ###
|
153
171
|
|
@@ -173,10 +191,22 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
173
191
|
|
174
192
|
SimpleQS::Queue.list('test')
|
175
193
|
|
194
|
+
Перевірити чи черга існує:
|
195
|
+
|
196
|
+
SimpleQS::Queue.exists?('queue_name')
|
197
|
+
|
176
198
|
Змінити типовий час невидимості для даної черги:
|
177
199
|
|
178
200
|
SimpleQS::Queue.new('queue_name').set_visibility_timeout(120)
|
179
201
|
|
202
|
+
Змінити максимальний розмір повідомлення:
|
203
|
+
|
204
|
+
SimpleQS::Queue.new('queue_name').set_maximum_message_size(65536)
|
205
|
+
|
206
|
+
Змінити період зберігання повідомлень для черги:
|
207
|
+
|
208
|
+
SimpleQS::Queue.new('queue_name').set_message_retention_period(1209600)
|
209
|
+
|
180
210
|
Встановити атрибути черги:
|
181
211
|
|
182
212
|
SimpleQS::Queue.new('queue_name').set_attributes({:VisibilityTimeout => 120, :Policy => "policy JSON here"})
|
@@ -200,6 +230,10 @@ Marjan Krekoten' (krekoten@gmail.com)
|
|
200
230
|
|
201
231
|
SimpleQS::Queue.new('queue_name').delete
|
202
232
|
|
233
|
+
Або:
|
234
|
+
|
235
|
+
SimpleQS::Queue.delete('queue_name')
|
236
|
+
|
203
237
|
### Повідомлення ###
|
204
238
|
|
205
239
|
Відправити повідомлення:
|
data/TODO.md
CHANGED
data/lib/simple_qs.rb
CHANGED
@@ -7,9 +7,10 @@ module SimpleQS
|
|
7
7
|
API_VERSION = '2009-02-01'
|
8
8
|
|
9
9
|
SQS_HOSTS = {
|
10
|
-
:
|
11
|
-
:us_west_1
|
12
|
-
:eu_west_1
|
10
|
+
:us_east_1 => 'sqs.us-east-1.amazonaws.com',
|
11
|
+
:us_west_1 => 'sqs.us-west-1.amazonaws.com',
|
12
|
+
:eu_west_1 => 'sqs.eu-west-1.amazonaws.com',
|
13
|
+
:ap_southeast_1 => 'sqs.ap-southeast-1.amazonaws.com'
|
13
14
|
}
|
14
15
|
|
15
16
|
autoload :Message, 'simple_qs/message'
|
@@ -26,12 +27,12 @@ module SimpleQS
|
|
26
27
|
attr_reader :account_id
|
27
28
|
|
28
29
|
def host=(value)
|
29
|
-
raise ArgumentError, 'Expected value to be one of: :
|
30
|
+
raise ArgumentError, 'Expected value to be one of: :us_east_1, :us_west_1, :eu_west_1, :ap_southeast_1' unless SQS_HOSTS.key?(value)
|
30
31
|
@host = value
|
31
32
|
end
|
32
33
|
|
33
34
|
def host
|
34
|
-
@host ||= :
|
35
|
+
@host ||= :us_east_1
|
35
36
|
SQS_HOSTS[@host]
|
36
37
|
end
|
37
38
|
end
|
data/lib/simple_qs/queue.rb
CHANGED
@@ -2,6 +2,8 @@ module SimpleQS
|
|
2
2
|
class Queue
|
3
3
|
|
4
4
|
class MaxVisibilityError < StandardError; end
|
5
|
+
class MaxMessageSizeError < StandardError; end
|
6
|
+
class MessageRetentionPeriodError < StandardError; end
|
5
7
|
|
6
8
|
MAX_VISIBILITY_TIMEOUT = 43200
|
7
9
|
|
@@ -103,10 +105,33 @@ module SimpleQS
|
|
103
105
|
def set_policy(policy)
|
104
106
|
set_attributes({:Policy => policy})
|
105
107
|
end
|
108
|
+
|
109
|
+
def set_maximum_message_size(message_size)
|
110
|
+
set_attributes({:MaximumMessageSize => message_size})
|
111
|
+
end
|
112
|
+
|
113
|
+
def set_message_retention_period(period)
|
114
|
+
set_attributes({:MessageRetentionPeriod => period})
|
115
|
+
end
|
116
|
+
|
117
|
+
ALLOWED_ATTRIBUTES = [
|
118
|
+
:VisibilityTimeout,
|
119
|
+
:Policy,
|
120
|
+
:MaximumMessageSize,
|
121
|
+
:MessageRetentionPeriod
|
122
|
+
]
|
106
123
|
|
107
124
|
def set_attributes(attributes)
|
108
|
-
|
125
|
+
unless (attributes.keys - ALLOWED_ATTRIBUTES).empty?
|
126
|
+
raise ArgumentError, "Allowed attributes: #{ALLOWED_ATTRIBUTES.map {|attr| ":" << attr.to_s}.join(", ")}"
|
127
|
+
end
|
109
128
|
self.class.check_visibility_timeout(attributes[:VisibilityTimeout]) if attributes[:VisibilityTimeout]
|
129
|
+
if attributes[:MaximumMessageSize] && !(1024..65536).include?(attributes[:MaximumMessageSize])
|
130
|
+
raise MaxMessageSizeError, 'MaximumMessageSize should be between 1024 and 65536'
|
131
|
+
end
|
132
|
+
if attributes[:MessageRetentionPeriod] && !(3600..1209600).include?(attributes[:MessageRetentionPeriod])
|
133
|
+
raise MessageRetentionPeriodError, 'MessageRetentionPeriod should be between 3600 and 1209600'
|
134
|
+
end
|
110
135
|
|
111
136
|
params = {
|
112
137
|
'Action' => 'SetQueueAttributes'
|
data/lib/version.rb
CHANGED