aws_sqs_moniter 0.0.1 → 0.0.3
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/lib/aws_sqs_moniter.rb +26 -2
- data/lib/aws_sqs_moniter/aws/arns.rb +29 -0
- data/lib/aws_sqs_moniter/aws/builder.rb +48 -0
- data/lib/aws_sqs_moniter/aws/builder/application_policy_builder.rb +73 -0
- data/lib/aws_sqs_moniter/aws/builder/queue_builder.rb +100 -0
- data/lib/aws_sqs_moniter/aws/builder/subscription_builder.rb +48 -0
- data/lib/aws_sqs_moniter/aws/builder/topic_builder.rb +27 -0
- data/lib/aws_sqs_moniter/aws/environmental_name.rb +13 -0
- data/lib/aws_sqs_moniter/configuration.rb +110 -0
- data/lib/aws_sqs_moniter/configuration/queue_configuration.rb +49 -0
- data/lib/aws_sqs_moniter/configuration/redrive_policy_configuration.rb +33 -0
- data/lib/aws_sqs_moniter/configuration/validatable.rb +15 -0
- data/lib/aws_sqs_moniter/dead_letters/retrier.rb +23 -0
- data/lib/aws_sqs_moniter/dead_letters/worker.rb +34 -0
- data/lib/aws_sqs_moniter/logging.rb +66 -0
- data/lib/aws_sqs_moniter/middleware/server/active_record/connection_pool.rb +15 -0
- data/lib/aws_sqs_moniter/middleware/server/active_record/idempotence.rb +24 -0
- data/lib/aws_sqs_moniter/middleware/server/active_record/retrier.rb +23 -0
- data/lib/aws_sqs_moniter/middleware/server/active_record/transaction.rb +36 -0
- data/lib/aws_sqs_moniter/middleware/server/airbrake.rb +24 -0
- data/lib/aws_sqs_moniter/monkey_patches/forbid_implicit_active_record_connection_checkout.rb +34 -0
- data/lib/aws_sqs_moniter/railtie.rb +10 -0
- data/lib/aws_sqs_moniter/typed_message.rb +37 -0
- data/lib/aws_sqs_moniter/version.rb +1 -1
- data/lib/aws_sqs_moniter/worker_registries/typed_message_registry.rb +99 -0
- data/lib/generators/aws_sqs_moniter/install_generator.rb +30 -0
- data/lib/generators/aws_sqs_moniter/templates/create_dead_letters_migration.rb +11 -0
- data/lib/generators/aws_sqs_moniter/templates/create_processed_messages_migration.rb +13 -0
- data/lib/generators/aws_sqs_moniter/templates/create_published_messages_migration.rb +20 -0
- data/lib/generators/aws_sqs_moniter/templates/dead_letter.rb +14 -0
- data/lib/generators/aws_sqs_moniter/templates/initializer.rb +32 -0
- data/lib/generators/aws_sqs_moniter/templates/processed_message.rb +12 -0
- data/lib/generators/aws_sqs_moniter/templates/published_message.rb +14 -0
- data/lib/generators/aws_sqs_moniter/templates/shoryuken.yml +16 -0
- data/lib/tasks/aws_sqs_moniter.rake +83 -0
- data/lib/tasks/aws_sqs_setup.rake +10 -0
- metadata +52 -12
- data/.gitignore +0 -14
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -22
- data/README.md +0 -31
- data/aws_sqs_moniter-0.0.1.gem +0 -0
- data/aws_sqs_moniter.gemspec +0 -36
- data/test/test_helper.rb +0 -0
@@ -0,0 +1,99 @@
|
|
1
|
+
require 'aws_sqs_moniter/aws/environmental_name'
|
2
|
+
require 'aws_sqs_moniter/typed_message'
|
3
|
+
|
4
|
+
module AwsSqsMoniter
|
5
|
+
module WorkerRegistries
|
6
|
+
class TypedMessageRegistry < Shoryuken::WorkerRegistry
|
7
|
+
DuplicateSubscriptionError = Class.new StandardError
|
8
|
+
InvalidWorkerOptionsError = Class.new StandardError
|
9
|
+
UnroutableMessageError = Class.new StandardError
|
10
|
+
WorkerNotFoundError = Class.new StandardError
|
11
|
+
|
12
|
+
def initialize(dead_letter_queue_name)
|
13
|
+
@subscriptions = {}
|
14
|
+
@dead_letter_queue_name = dead_letter_queue_name
|
15
|
+
end
|
16
|
+
|
17
|
+
def batch_receive_messages?(_queue)
|
18
|
+
false
|
19
|
+
end
|
20
|
+
|
21
|
+
def clear
|
22
|
+
@subscriptions.clear
|
23
|
+
end
|
24
|
+
|
25
|
+
def fetch_worker(queue, message)
|
26
|
+
queue_subscriptions = @subscriptions.fetch(queue) do
|
27
|
+
fail UnroutableMessageError, "#{self} does not know how to route messages for queue '#{queue}'."
|
28
|
+
end
|
29
|
+
|
30
|
+
message = TypedMessage.new message
|
31
|
+
worker_class = queue_subscriptions[message.type] || queue_subscriptions['*']
|
32
|
+
|
33
|
+
fail WorkerNotFoundError,
|
34
|
+
"Worker not found for message type #{message.type} on queue #{queue}." unless worker_class
|
35
|
+
|
36
|
+
worker_class.new
|
37
|
+
end
|
38
|
+
|
39
|
+
def queues
|
40
|
+
@subscriptions.keys
|
41
|
+
end
|
42
|
+
|
43
|
+
def register_worker(queue, clazz)
|
44
|
+
invalid_worker = workers(queue).find do |worker_class|
|
45
|
+
worker_class.get_shoryuken_options['batch'] == true || clazz.get_shoryuken_options['batch'] == true
|
46
|
+
end
|
47
|
+
|
48
|
+
fail ArgumentError, "Could not register #{clazz} for '#{queue}', "\
|
49
|
+
"because #{invalid_worker} is already registered for this queue, "\
|
50
|
+
"and Shoryuken doesn't support a batchable worker for a queue with multiple workers" if invalid_worker
|
51
|
+
|
52
|
+
worker_subscriptions = clazz.get_shoryuken_options['subscriptions']
|
53
|
+
|
54
|
+
if worker_subscriptions.nil?
|
55
|
+
fail InvalidWorkerOptionsError, "Worker #{clazz} must define "\
|
56
|
+
'a :subscriptions hash ({ queue_name: message_types }) in '\
|
57
|
+
"it's shoryuken_options"
|
58
|
+
end
|
59
|
+
|
60
|
+
worker_subscriptions.each do |owning_queue, message_types|
|
61
|
+
queue_subscriptions = @subscriptions.fetch_store env_name(owning_queue), {}
|
62
|
+
|
63
|
+
[message_types].flatten.each do |message_type|
|
64
|
+
message_type = message_type.to_s.dasherize
|
65
|
+
|
66
|
+
if queue_subscriptions.key? message_type
|
67
|
+
fail DuplicateSubscriptionError, "Worker #{clazz} cannot "\
|
68
|
+
"define another subscription of message #{message_type} "\
|
69
|
+
"on queue #{owning_queue} as it is already subscribed to by "\
|
70
|
+
"worker #{queue_subscriptions[message_type]}."
|
71
|
+
end
|
72
|
+
|
73
|
+
queue_subscriptions.store message_type, clazz
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def topics queue = nil
|
79
|
+
topic_list = if queue
|
80
|
+
@subscriptions.fetch(queue, {}).keys
|
81
|
+
else
|
82
|
+
@subscriptions.values.map(&:keys).flatten
|
83
|
+
end
|
84
|
+
|
85
|
+
topic_list.uniq - ['*']
|
86
|
+
end
|
87
|
+
|
88
|
+
def workers(queue)
|
89
|
+
@subscriptions.fetch(queue, {}).values
|
90
|
+
end
|
91
|
+
|
92
|
+
private
|
93
|
+
|
94
|
+
def env_name(name)
|
95
|
+
AwsSqsMoniter::Aws::EnvironmentalName.new(name.to_s).to_s
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rails/generators/named_base'
|
2
|
+
require 'rails/generators/active_record/migration'
|
3
|
+
|
4
|
+
module AwsSqsMoniter
|
5
|
+
class InstallGenerator < Rails::Generators::Base
|
6
|
+
include ActiveRecord::Generators::Migration
|
7
|
+
|
8
|
+
desc 'Installs models and initializers to Rails Application'
|
9
|
+
|
10
|
+
source_root File.expand_path('../templates', __FILE__)
|
11
|
+
|
12
|
+
def install_files
|
13
|
+
#copiong initializer to config/intializer of rails application
|
14
|
+
copy_file 'initializer.rb', 'config/initializers/aws_sqs_moniter_intializer.rb'
|
15
|
+
copy_file 'dead_letter.rb', 'app/models/dead_letter.rb'
|
16
|
+
copy_file 'processed_message.rb', 'app/models/processed_message.rb'
|
17
|
+
copy_file 'published_message.rb', 'app/models/published_message.rb'
|
18
|
+
#coping aws config file to rails application
|
19
|
+
copy_file 'shoryuken.yml' , 'config/shoryuken.yml'
|
20
|
+
migration_template 'create_dead_letters_migration.rb',
|
21
|
+
'db/migrate/create_dead_letters.rb'
|
22
|
+
|
23
|
+
migration_template 'create_processed_messages_migration.rb',
|
24
|
+
'db/migrate/create_processed_messages.rb'
|
25
|
+
|
26
|
+
migration_template 'create_published_messages_migration.rb',
|
27
|
+
'db/migrate/create_published_messages.rb'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class CreateDeadLetters < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :dead_letters, id: false do |t|
|
4
|
+
t.timestamps
|
5
|
+
|
6
|
+
t.string :sqs_id, null: false, index: { unique: true }
|
7
|
+
t.uuid :message_id, null: false, index: true
|
8
|
+
t.json :message, null: false
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class CreateProcessedMessages < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :processed_messages, id: :uuid do |t|
|
4
|
+
t.timestamps
|
5
|
+
|
6
|
+
t.uuid :message_id, null: false
|
7
|
+
t.string :queue, null: false
|
8
|
+
t.json :message, null: false
|
9
|
+
|
10
|
+
t.index %i(message_id queue), unique: true
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class CreatePublishedMessages < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :published_messages, id: :uuid do |t|
|
4
|
+
t.timestamps
|
5
|
+
|
6
|
+
t.string :topic, null: false
|
7
|
+
t.json :message, null: false
|
8
|
+
t.json :response
|
9
|
+
|
10
|
+
t.integer :attempts, null: false, default: 0
|
11
|
+
t.datetime :attempted_at
|
12
|
+
|
13
|
+
t.string :published_by
|
14
|
+
t.datetime :published_at
|
15
|
+
|
16
|
+
t.index :published_by
|
17
|
+
t.index :published_at
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class DeadLetter < ActiveRecord::Base
|
2
|
+
self.primary_key = 'sqs_id'
|
3
|
+
|
4
|
+
validates :sqs_id, presence: true
|
5
|
+
validates :message_id, presence: true
|
6
|
+
validates :message, presence: true
|
7
|
+
|
8
|
+
def self.retryable sqs_id: nil, message_id: nil
|
9
|
+
criteria = all
|
10
|
+
criteria = criteria.where(sqs_id: sqs_id) unless sqs_id.blank?
|
11
|
+
criteria = criteria.where(message_id: message_id) unless message_id.blank?
|
12
|
+
criteria
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Load any middlewares you want to use:
|
2
|
+
#
|
3
|
+
# require 'aws_sqs_moniter/middleware/server/airbrake'
|
4
|
+
# require 'aws_sqs_moniter/middleware/server/active_record/connection_pool'
|
5
|
+
|
6
|
+
# Configure your environment:
|
7
|
+
#
|
8
|
+
# AwsSqsMoniter.configure do |config|
|
9
|
+
# config.use_aws_sqs_moniter_logging
|
10
|
+
# config.use_typed_message_registry 'your_dead_letter_queue_name'
|
11
|
+
|
12
|
+
# if Rails.env.development?
|
13
|
+
# config.enable_cmb_mode
|
14
|
+
# config.require_application_workers
|
15
|
+
# config.require_dead_letter_worker
|
16
|
+
# end
|
17
|
+
|
18
|
+
# config.queue_defaults.delay_seconds = 0
|
19
|
+
# config.queue_defaults.message_retention_period = 1_209_600
|
20
|
+
# config.queue_defaults.visibility_timeout = 30
|
21
|
+
|
22
|
+
# config.add_queue('your_dead_letter_queue_name') do |queue|
|
23
|
+
# queue.visibility_timeout = 60
|
24
|
+
# end
|
25
|
+
|
26
|
+
# config.add_queue('your_queue_name') do |queue|
|
27
|
+
# queue.delay_seconds = 10
|
28
|
+
# queue.redrive_policy.dead_letter_queue = 'your_dead_letter_queue_name'
|
29
|
+
# queue.redrive_policy.enabled = true
|
30
|
+
# queue.redrive_policy.max_receive_count = 5
|
31
|
+
# end
|
32
|
+
# end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class ProcessedMessage < ActiveRecord::Base
|
2
|
+
validates :message_id, presence: true
|
3
|
+
validates :queue, presence: true
|
4
|
+
validates :message, presence: true
|
5
|
+
|
6
|
+
def self.log message
|
7
|
+
create!(
|
8
|
+
message_id: message.id,
|
9
|
+
queue: message.queue,
|
10
|
+
message: message.to_h)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class PublishedMessage < ActiveRecord::Base
|
2
|
+
def self.unsent
|
3
|
+
where(published_at: nil)
|
4
|
+
.where('attempted_at IS NULL OR (attempted_at <= ?)', 1.minute.ago)
|
5
|
+
.order(created_at: :asc)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.sent_by publisher_id, timestamp
|
9
|
+
where(published_by: publisher_id, attempted_at: timestamp)
|
10
|
+
end
|
11
|
+
|
12
|
+
validates :message, presence: true
|
13
|
+
validates :topic, presence: true
|
14
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#AWS credentails need to keep here
|
2
|
+
aws:
|
3
|
+
access_key_id: "" # or <%= ENV['AWS_ACCESS_KEY_ID'] %>
|
4
|
+
secret_access_key: "" # or <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
|
5
|
+
region: us-east-1 # or <%= ENV['AWS_REGION'] %>
|
6
|
+
receive_message: # See http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SQS/Queue.html#receive_message-instance_method
|
7
|
+
# wait_time_seconds: N # The number of seconds to wait for new messages when polling. Defaults to the #wait_time_seconds defined on the queue
|
8
|
+
attributes:
|
9
|
+
- receive_count
|
10
|
+
- sent_at
|
11
|
+
concurrency: 25, # The number of allocated threads to process messages. Default 25
|
12
|
+
delay: 25, # The delay in seconds to pause a queue when it's empty. Default 0
|
13
|
+
queues:
|
14
|
+
- [high_priority, 6]
|
15
|
+
- [default, 2]
|
16
|
+
- [low_priority, 1]
|
@@ -0,0 +1,83 @@
|
|
1
|
+
namespace :aws_sqs_moniter do
|
2
|
+
namespace :aws do
|
3
|
+
namespace :build do
|
4
|
+
desc 'Builds policies, topics and queues'
|
5
|
+
task all: %i(environment topics queues subscriptions policies) do
|
6
|
+
end
|
7
|
+
|
8
|
+
desc 'Builds the application policies'
|
9
|
+
task policies: :environment do
|
10
|
+
builder.build_policies
|
11
|
+
end
|
12
|
+
|
13
|
+
desc 'Builds the queues'
|
14
|
+
task queues: :environment do
|
15
|
+
builder.build_queues
|
16
|
+
end
|
17
|
+
|
18
|
+
desc 'Builds the subscriptions'
|
19
|
+
task subscriptions: :environment do
|
20
|
+
builder.build_subscriptions
|
21
|
+
end
|
22
|
+
|
23
|
+
desc 'Builds the topics'
|
24
|
+
task topics: :environment do
|
25
|
+
builder.build_topics
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def builder
|
31
|
+
AwsSqsMoniter.configuration.require_workers
|
32
|
+
require 'aws_sqs_moniter/aws/builder'
|
33
|
+
AwsSqsMoniter::Aws::Builder.new
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
namespace :destroy do
|
38
|
+
desc 'Deletes all topics and queues'
|
39
|
+
task all: :environment do
|
40
|
+
fail 'This task is only available in development.' unless Rails.env.development?
|
41
|
+
builder.delete_all
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
#Queues GET/READ/DELETE
|
47
|
+
namespace :queues do
|
48
|
+
|
49
|
+
desc 'get queues'
|
50
|
+
task get: :environment do
|
51
|
+
puts "Get Queue list from AWS SQS Account"
|
52
|
+
end
|
53
|
+
|
54
|
+
desc "delete queues"
|
55
|
+
task delete: :environment do
|
56
|
+
puts "Delete Queues from AWS SQS Account"
|
57
|
+
end
|
58
|
+
|
59
|
+
desc "READ messages from a queue"
|
60
|
+
task read: :environment do
|
61
|
+
puts "read messages from a queue"
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
namespace :workers do
|
67
|
+
|
68
|
+
desc "Start Workers"
|
69
|
+
task start: :environment do
|
70
|
+
puts "start workers in Background"
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
namespace :dead_letters do
|
77
|
+
desc 'Retries all dead letters (or pass SQS_ID or MESSAGE_ID to select a specific message).'
|
78
|
+
task retry: :environment do
|
79
|
+
scope = DeadLetter.retriable sqs_id: ENV['SQS_ID'], message_id: ENV['MESSAGE_ID']
|
80
|
+
AwsSqsMoniter::DeadLetterRetrier.new.retry scope
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
namespace :aws_sqs_moniter do
|
2
|
+
desc 'setup Aws SQS on your machicne.'
|
3
|
+
task setup: :environment do
|
4
|
+
puts "coping SQS config file for keeping AWS credentails"
|
5
|
+
end
|
6
|
+
|
7
|
+
task run_migrations: :environment do
|
8
|
+
puts "adding migrations to store/persist queue state/status."
|
9
|
+
end
|
10
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws_sqs_moniter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- saikiranmothe
|
@@ -206,6 +206,20 @@ dependencies:
|
|
206
206
|
- - '>='
|
207
207
|
- !ruby/object:Gem::Version
|
208
208
|
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: docsplit
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
209
223
|
description: AWS SQS Moniter.
|
210
224
|
email:
|
211
225
|
- saikiran.mothe@gmail.com
|
@@ -213,16 +227,43 @@ executables: []
|
|
213
227
|
extensions: []
|
214
228
|
extra_rdoc_files: []
|
215
229
|
files:
|
216
|
-
- .
|
217
|
-
-
|
218
|
-
-
|
219
|
-
- README.md
|
220
|
-
- Rakefile
|
221
|
-
- aws_sqs_moniter-0.0.1.gem
|
222
|
-
- aws_sqs_moniter.gemspec
|
223
|
-
- lib/aws_sqs_moniter.rb
|
230
|
+
- lib/aws_sqs_moniter/monkey_patches/forbid_implicit_active_record_connection_checkout.rb
|
231
|
+
- lib/aws_sqs_moniter/dead_letters/retrier.rb
|
232
|
+
- lib/aws_sqs_moniter/dead_letters/worker.rb
|
224
233
|
- lib/aws_sqs_moniter/version.rb
|
225
|
-
-
|
234
|
+
- lib/aws_sqs_moniter/middleware/server/airbrake.rb
|
235
|
+
- lib/aws_sqs_moniter/middleware/server/active_record/transaction.rb
|
236
|
+
- lib/aws_sqs_moniter/middleware/server/active_record/retrier.rb
|
237
|
+
- lib/aws_sqs_moniter/middleware/server/active_record/idempotence.rb
|
238
|
+
- lib/aws_sqs_moniter/middleware/server/active_record/connection_pool.rb
|
239
|
+
- lib/aws_sqs_moniter/configuration.rb
|
240
|
+
- lib/aws_sqs_moniter/configuration/redrive_policy_configuration.rb
|
241
|
+
- lib/aws_sqs_moniter/configuration/validatable.rb
|
242
|
+
- lib/aws_sqs_moniter/configuration/queue_configuration.rb
|
243
|
+
- lib/aws_sqs_moniter/worker_registries/typed_message_registry.rb
|
244
|
+
- lib/aws_sqs_moniter/logging.rb
|
245
|
+
- lib/aws_sqs_moniter/typed_message.rb
|
246
|
+
- lib/aws_sqs_moniter/railtie.rb
|
247
|
+
- lib/aws_sqs_moniter/aws/arns.rb
|
248
|
+
- lib/aws_sqs_moniter/aws/builder.rb
|
249
|
+
- lib/aws_sqs_moniter/aws/builder/application_policy_builder.rb
|
250
|
+
- lib/aws_sqs_moniter/aws/builder/topic_builder.rb
|
251
|
+
- lib/aws_sqs_moniter/aws/builder/queue_builder.rb
|
252
|
+
- lib/aws_sqs_moniter/aws/builder/subscription_builder.rb
|
253
|
+
- lib/aws_sqs_moniter/aws/environmental_name.rb
|
254
|
+
- lib/aws_sqs_moniter.rb
|
255
|
+
- lib/tasks/aws_sqs_moniter.rake
|
256
|
+
- lib/tasks/aws_sqs_setup.rake
|
257
|
+
- lib/generators/aws_sqs_moniter/install_generator.rb
|
258
|
+
- lib/generators/aws_sqs_moniter/templates/initializer.rb
|
259
|
+
- lib/generators/aws_sqs_moniter/templates/shoryuken.yml
|
260
|
+
- lib/generators/aws_sqs_moniter/templates/create_published_messages_migration.rb
|
261
|
+
- lib/generators/aws_sqs_moniter/templates/create_dead_letters_migration.rb
|
262
|
+
- lib/generators/aws_sqs_moniter/templates/processed_message.rb
|
263
|
+
- lib/generators/aws_sqs_moniter/templates/dead_letter.rb
|
264
|
+
- lib/generators/aws_sqs_moniter/templates/published_message.rb
|
265
|
+
- lib/generators/aws_sqs_moniter/templates/create_processed_messages_migration.rb
|
266
|
+
- Rakefile
|
226
267
|
homepage: http://saikiranmothe.github.io/aws_sqs_moniter
|
227
268
|
licenses:
|
228
269
|
- MIT
|
@@ -247,6 +288,5 @@ rubygems_version: 2.0.3
|
|
247
288
|
signing_key:
|
248
289
|
specification_version: 4
|
249
290
|
summary: AWS SQS Moniter
|
250
|
-
test_files:
|
251
|
-
- test/test_helper.rb
|
291
|
+
test_files: []
|
252
292
|
has_rdoc:
|