alephant-publisher-queue 1.4.1 → 2.0.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.
- 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:
|