alephant-publisher-queue 1.4.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Guardfile +2 -2
- data/Rakefile +5 -5
- data/alephant-publisher-queue.gemspec +11 -11
- data/lib/alephant/publisher/env.rb +4 -3
- data/lib/alephant/publisher/queue/options.rb +9 -3
- data/lib/alephant/publisher/queue/processor.rb +2 -2
- data/lib/alephant/publisher/queue/sqs_helper/archiver.rb +9 -10
- data/lib/alephant/publisher/queue/sqs_helper/queue.rb +21 -5
- data/lib/alephant/publisher/queue/version.rb +1 -1
- data/lib/alephant/publisher/queue/writer.rb +39 -13
- data/lib/alephant/publisher/queue.rb +15 -10
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43275970bcb48206ee6a00c7f7889a00579fc983
|
4
|
+
data.tar.gz: 48081162062dda40382d065ca4b2e11fb15decf6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cc53d959cc6c21cc85bbd8f9acf6bd5c2eb74cab2915919a37d69ed0563cfbf3df6fea8db032803b7645dcf12d77c67d7090992d6f6518e2b11a2d49739b4f1
|
7
|
+
data.tar.gz: 07050f7c856a0d1db3bca8396b9fc5bcf832c067c80f41f6c7d67f0f5169334d31ddb65ba0295d3f172233cdf5df6f0d10069ccb6c4a525fdd4d6f677c8c5d00
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
data/Rakefile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__),
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), "lib")
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require "rspec/core/rake_task"
|
4
|
+
require "bundler/gem_tasks"
|
5
|
+
require "alephant/publisher/queue"
|
6
6
|
|
7
|
-
require
|
7
|
+
require "rake/rspec"
|
8
8
|
|
9
9
|
task :default => :spec
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "alephant/publisher/queue/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "alephant-publisher-queue"
|
@@ -28,13 +28,13 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.add_development_dependency "pry-nav"
|
29
29
|
spec.add_development_dependency 'rake-rspec'
|
30
30
|
|
31
|
-
spec.add_runtime_dependency
|
32
|
-
spec.add_runtime_dependency
|
33
|
-
spec.add_runtime_dependency
|
34
|
-
spec.add_runtime_dependency
|
35
|
-
spec.add_runtime_dependency
|
36
|
-
spec.add_runtime_dependency
|
37
|
-
spec.add_runtime_dependency
|
38
|
-
spec.add_runtime_dependency
|
39
|
-
spec.add_runtime_dependency
|
31
|
+
spec.add_runtime_dependency "rake"
|
32
|
+
spec.add_runtime_dependency "aws-sdk", "~> 1.0"
|
33
|
+
spec.add_runtime_dependency "crimp"
|
34
|
+
spec.add_runtime_dependency "alephant-support"
|
35
|
+
spec.add_runtime_dependency "alephant-sequencer"
|
36
|
+
spec.add_runtime_dependency "alephant-cache"
|
37
|
+
spec.add_runtime_dependency "alephant-logger", "~> 3.0.2"
|
38
|
+
spec.add_runtime_dependency "alephant-lookup"
|
39
|
+
spec.add_runtime_dependency "alephant-renderer"
|
40
40
|
end
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "aws-sdk"
|
2
|
+
require "alephant/logger"
|
3
3
|
|
4
4
|
module Alephant
|
5
5
|
module Publisher
|
@@ -52,7 +52,13 @@ module Alephant
|
|
52
52
|
instance.merge! opts
|
53
53
|
rescue Exception => e
|
54
54
|
logger.metric "QueueOptionsInvalidKeySpecified"
|
55
|
-
logger.error
|
55
|
+
logger.error(
|
56
|
+
"event" => "QueueOptionsKeyInvalid",
|
57
|
+
"class" => e.class,
|
58
|
+
"message" => e.message,
|
59
|
+
"backtrace" => e.backtrace.join.to_s,
|
60
|
+
"method" => "#{self.class}#validate"
|
61
|
+
)
|
56
62
|
puts e.message
|
57
63
|
end
|
58
64
|
end
|
@@ -39,8 +39,13 @@ module Alephant
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def store(message)
|
42
|
-
|
43
|
-
|
42
|
+
store_item(message).tap do
|
43
|
+
logger.info(
|
44
|
+
"event" => "MessageStored",
|
45
|
+
"messageBody" => body_for(message),
|
46
|
+
"method" => "#{self.class}#store"
|
47
|
+
)
|
48
|
+
end
|
44
49
|
end
|
45
50
|
|
46
51
|
def store_item(message)
|
@@ -62,14 +67,8 @@ module Alephant
|
|
62
67
|
]
|
63
68
|
end
|
64
69
|
|
65
|
-
def
|
66
|
-
|
67
|
-
parts << "(#{encoded_body m.body})" if log_message_body
|
68
|
-
end.join(" ")
|
69
|
-
end
|
70
|
-
|
71
|
-
def encoded_body(message)
|
72
|
-
JSON.generate message.split("\n")
|
70
|
+
def body_for(message)
|
71
|
+
log_message_body ? message.body : "No message body available"
|
73
72
|
end
|
74
73
|
|
75
74
|
def date_key
|
@@ -1,5 +1,5 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "aws-sdk"
|
2
|
+
require "alephant/logger"
|
3
3
|
|
4
4
|
module Alephant
|
5
5
|
module Publisher
|
@@ -19,7 +19,13 @@ module Alephant
|
|
19
19
|
@timeout = timeout
|
20
20
|
@wait_time = wait_time
|
21
21
|
|
22
|
-
logger.
|
22
|
+
logger.info(
|
23
|
+
"event" => "QueueConfigured",
|
24
|
+
"queueUrl" => queue.url,
|
25
|
+
"archiver" => archiver,
|
26
|
+
"timeout" => timeout,
|
27
|
+
"method" => "#{self.class}#initialize"
|
28
|
+
)
|
23
29
|
end
|
24
30
|
|
25
31
|
def message
|
@@ -30,7 +36,11 @@ module Alephant
|
|
30
36
|
|
31
37
|
def process(m)
|
32
38
|
logger.metric "MessagesReceived"
|
33
|
-
logger.info(
|
39
|
+
logger.info(
|
40
|
+
"event" => "QueueMessageReceived",
|
41
|
+
"messageId" => m.id,
|
42
|
+
"method" => "#{self.class}#process"
|
43
|
+
)
|
34
44
|
archive m
|
35
45
|
end
|
36
46
|
|
@@ -38,7 +48,13 @@ module Alephant
|
|
38
48
|
archiver.see(m) unless archiver.nil?
|
39
49
|
rescue StandardError => e
|
40
50
|
logger.metric "ArchiveFailed"
|
41
|
-
logger.
|
51
|
+
logger.error(
|
52
|
+
"event" => "MessageArchiveFailed",
|
53
|
+
"class" => e.class,
|
54
|
+
"message" => e.message,
|
55
|
+
"backtrace" => e.backtrace.join.to_s,
|
56
|
+
"method" => "#{self.class}#archive"
|
57
|
+
)
|
42
58
|
end
|
43
59
|
|
44
60
|
def receive
|
@@ -1,11 +1,11 @@
|
|
1
|
-
require
|
1
|
+
require "crimp"
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
3
|
+
require "alephant/cache"
|
4
|
+
require "alephant/lookup"
|
5
|
+
require "alephant/logger"
|
6
|
+
require "alephant/sequencer"
|
7
|
+
require "alephant/support/parser"
|
8
|
+
require "alephant/renderer"
|
9
9
|
|
10
10
|
module Alephant
|
11
11
|
module Publisher
|
@@ -45,16 +45,42 @@ module Alephant
|
|
45
45
|
end
|
46
46
|
|
47
47
|
def write(id, view)
|
48
|
-
logger.info "Publisher::Queue::Writer#writes: id '#{id}', view '#{view}'"
|
49
48
|
seq_for(id).validate(message) do
|
50
49
|
store(id, view, location_for(id), :msg_id => message.id)
|
50
|
+
end.tap do
|
51
|
+
logger.info(
|
52
|
+
"event" => "MessageWritten",
|
53
|
+
"id" => id,
|
54
|
+
"view" => view,
|
55
|
+
"method" => "#{self.class}#write"
|
56
|
+
)
|
51
57
|
end
|
52
58
|
end
|
53
59
|
|
54
60
|
def store(id, view, location, storage_opts = {})
|
55
|
-
|
56
|
-
cache.put(location,
|
57
|
-
|
61
|
+
render = view.render
|
62
|
+
cache.put(location, render, view.content_type, storage_opts).tap do
|
63
|
+
logger.info(
|
64
|
+
"event" => "MessageStored",
|
65
|
+
"location" => location,
|
66
|
+
"view" => view,
|
67
|
+
"render" => render.force_encoding("utf-8"),
|
68
|
+
"contentType" => view.content_type,
|
69
|
+
"storageOptions" => storage_opts,
|
70
|
+
"messageId" => message.id,
|
71
|
+
"method" => "#{self.class}#store"
|
72
|
+
)
|
73
|
+
end
|
74
|
+
lookup.write(id, options, seq_id, location).tap do
|
75
|
+
logger.info(
|
76
|
+
"event" => "LookupLocationUpdated",
|
77
|
+
"id" => id,
|
78
|
+
"options" => options,
|
79
|
+
"sequenceId" => seq_id,
|
80
|
+
"location" => location,
|
81
|
+
"method" => "#{self.class}#write"
|
82
|
+
)
|
83
|
+
end
|
58
84
|
end
|
59
85
|
|
60
86
|
def location_for(id)
|
@@ -66,7 +92,7 @@ module Alephant
|
|
66
92
|
end
|
67
93
|
|
68
94
|
def batch?
|
69
|
-
!batch.nil
|
95
|
+
!batch.nil?
|
70
96
|
end
|
71
97
|
|
72
98
|
def seq_for(id)
|
@@ -74,7 +100,7 @@ module Alephant
|
|
74
100
|
config[:sequencer_table_name],
|
75
101
|
seq_key_from(id),
|
76
102
|
config[:sequence_id_path],
|
77
|
-
config[:keep_all_messages] ==
|
103
|
+
config[:keep_all_messages] == "true"
|
78
104
|
)
|
79
105
|
end
|
80
106
|
|
@@ -1,12 +1,12 @@
|
|
1
|
-
require_relative
|
1
|
+
require_relative "env"
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
3
|
+
require "alephant/publisher/queue/version"
|
4
|
+
require "alephant/publisher/queue/options"
|
5
|
+
require "alephant/publisher/queue/sqs_helper/queue"
|
6
|
+
require "alephant/publisher/queue/sqs_helper/archiver"
|
7
|
+
require "alephant/logger"
|
8
|
+
require "alephant/publisher/queue/processor"
|
9
|
+
require "json"
|
10
10
|
|
11
11
|
module Alephant
|
12
12
|
module Publisher
|
@@ -68,8 +68,13 @@ module Alephant
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def sqs_queue_options
|
71
|
-
|
72
|
-
|
71
|
+
(opts.queue[:aws_account_id].nil? ? {} : { :queue_owner_aws_account_id => opts.queue[:aws_account_id] }).tap do |ops|
|
72
|
+
logger.info(
|
73
|
+
"event" => "SQSQueueOptionsConfigured",
|
74
|
+
"options" => ops,
|
75
|
+
"method" => "#{self.class}#sqs_queue_options"
|
76
|
+
)
|
77
|
+
end
|
73
78
|
end
|
74
79
|
|
75
80
|
def aws_queue
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alephant-publisher-queue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- BBC News
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,17 +223,17 @@ dependencies:
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
requirement: !ruby/object:Gem::Requirement
|
225
225
|
requirements:
|
226
|
-
- -
|
226
|
+
- - ~>
|
227
227
|
- !ruby/object:Gem::Version
|
228
|
-
version:
|
228
|
+
version: 3.0.2
|
229
229
|
name: alephant-logger
|
230
230
|
prerelease: false
|
231
231
|
type: :runtime
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
|
-
- -
|
234
|
+
- - ~>
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
236
|
+
version: 3.0.2
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
requirement: !ruby/object:Gem::Requirement
|
239
239
|
requirements:
|